Seite 1 von 1

redirect von .com.html/ per htaccess

Verfasst: 17.01.2009, 20:23
von bydlo
moin moin,
ein von mir benutztes Plugin verursacht mir als Homelink so eine URL:
www.domain.com.html/

wie bekomme ich denn per htaccess das so hingebogen das es wieder stimmt?

Der normale redirect gebietet ja das man die umzuleitende URL ohne angabe der doman notiert, oder?
gruss axel

Verfasst:
von

Verfasst: 17.01.2009, 20:28
von net(t)worker
mit .htaccess kannste das nicht hinbiegen... das musste schon im plugin selber umbiegen... mit der .htaccess kannste nur beim seitenaufruf etwas umbiegen, nicht bei der Auslieferung einer Seite, und wenn jemand einen solchen krummen Link aufruft, landet er ja garnicht bei dir auf dem server, also kannste mit .htaccess nix machen..

Verfasst: 17.01.2009, 20:36
von bydlo
schade.

hat jemand ne idee wie mnan dieses Plugin so hinbiegt?

Code: Alles auswählen

<?php
/*
Plugin Name&#58; 123 HTML
Plugin URI&#58; http&#58;//schnurpsel.de/wordpress-plugins/123-html/
Description&#58; Setzt an die URLs ein '.html' hinten dran.
Author&#58; Ingo Henze
Version&#58; 0.18
Author URI&#58; http&#58;//putzlowitsch.de/
*/ 
// Einstellungen für das Plugin

// Einstellungen laden
$plw123htm_options = get_option&#40; 'plw123htm_options' &#41;;
// noch keine vorhanden, dann mit Default-Werten vorbelegen
if&#40; !is_array&#40; $plw123htm_options &#41; &#41; &#123;
	$plw123htm_options = array&#40;				// Verwenden ...
		'use_post_link'  => true,			// für Artikel
		'use_page_link'  => true,			// für Seiten
		'use_category_link'  => false,	// für Kategorien
		'use_tag_link'  => false,				// für Tags
		'use_year_link'  =>false,				// für Jahresarchiv
		'use_month_link'  => false,			// für Monatsarchive
		'use_day_link'  => false,				// für Tagesarchiv
		'opt_category_link'  => false,	// Verbindestrichung für Kategorien
		'opt_archive_link'  => false		// Verbindestrichung für Archive
	&#41;;
&#125;
// wenn vorhanden, gegebenenfalls fehlende mit Default-Werten vorbelegen
else &#123;
	if&#40; !array_key_exists&#40; 'use_post_link', $plw123htm_options &#41; &#41;
		$plw123htm_options&#91;'use_post_link'&#93; = true;
	if&#40; !array_key_exists&#40; 'use_page_link', $plw123htm_options &#41; &#41;
		$plw123htm_options&#91;'use_page_link'&#93; = true;
	if&#40; !array_key_exists&#40; 'use_category_link', $plw123htm_options &#41; &#41;
		$plw123htm_options&#91;'use_category_link'&#93; = false;
	if&#40; !array_key_exists&#40; 'use_tag_link', $plw123htm_options &#41; &#41;
		$plw123htm_options&#91;'use_tag_link'&#93; = false;
	if&#40; !array_key_exists&#40; 'use_year_link', $plw123htm_options &#41; &#41;
		$plw123htm_options&#91;'use_year_link'&#93; = false;
	if&#40; !array_key_exists&#40; 'use_month_link', $plw123htm_options &#41; &#41;
		$plw123htm_options&#91;'use_month_link'&#93; = false;
	if&#40; !array_key_exists&#40; 'use_day_link', $plw123htm_options &#41; &#41;
		$plw123htm_options&#91;'use_day_link'&#93; = false;
	if&#40; !array_key_exists&#40; 'opt_category_link', $plw123htm_options &#41; &#41;
		$plw123htm_options&#91;'opt_category_link'&#93; = false;
	if&#40; !array_key_exists&#40; 'opt_archive_link', $plw123htm_options &#41; &#41;
		$plw123htm_options&#91;'opt_archive_link'&#93; = false;
&#125;


// Die Endung .html aus der Request-URI entfernen
function plw123htm_link_remove_html&#40;&#41; &#123;
	global $plw123htm_options;
	
	$request_uri = $_SERVER&#91;'REQUEST_URI'&#93;;

	// bestimmte URIs unverändert lassen
	if&#40; preg_match&#40; "#/wp-admin/#", $request_uri &#41; &#41;
		return;
	
	
	$permalink_structure = get_option&#40; 'permalink_structure' &#41;;
	$use_trailing_slashes = &#40; substr&#40;$permalink_structure, -1, 1&#41; == '/' &#41; ? true &#58; false;

	$request_uri = preg_replace&#40; '/\.html/i', "", $request_uri &#41;;

	// Bei einem Kategorie-Link die Bindestriche in Schrägstriche umwandeln
	$cat_base = get_option&#40; 'category_base' &#41;;
	if&#40; empty&#40;$cat_base&#41; &#41;
	  $cat_base = '/category';
	else
	  $cat_base = rtrim&#40; $cat_base, '/' &#41;;
/*	if&#40; $cat_base == '/.' &#41;
		$request_uri = '/.'.$request_uri; */
	$request_uri = preg_replace&#40; "#^$cat_base&#40;.*&#41;-#i", "$cat_base$2/", $request_uri &#41;;
	
	// Ab WP-Version 2.3 müssen auch die Tag-Links behandelt werden
	// die Verbindestrichung erfolgt wie bei Kategorien
	// Bei einem Tag-Link die Bindestriche in Schrägstriche umwandeln
	if&#40; version_compare&#40; get_bloginfo&#40;'version'&#41;, '2.3', '>='&#41; &#41; &#123;
	    $plw_tag_base = get_option&#40;'tag_base'&#41;;
	    if&#40; empty&#40;$plw_tag_base&#41; &#41;
	      $plw_tag_base = '/tag';
	    else
	      $plw_tag_base = rtrim&#40; $plw_tag_base, '/' &#41;;

	    $plw_tag_base = preg_quote&#40; $plw_tag_base, '#' &#41;;
	    $plw_request_uri = preg_replace&#40; "#^$plw_tag_base&#40;.*&#41;-#i", "$plw_tag_base$2/", $plw_request_uri &#41;;
	&#125;

	// Bei einem Archiv &#40;Monat / Tag&#41; die Bindestriche in Schrägstriche umwandeln
	if&#40; $plw123htm_options&#91;'opt_archive_link'&#93; && preg_match&#40; "#\d&#123;4&#125;-\d&#123;2&#125;&#40;-\d&#123;2&#125;|&#41;#", $request_uri &#41; &#41; &#123;
		$home = rtrim&#40; get_option&#40; 'home' &#41;, '/' &#41;.'/';
		if&#40; preg_match&#40; "#^$home&#40;.*&#41;#", $request_uri, $matches &#41; &#41;
			$request_uri = $matches&#91;1&#93;;
		else
			$home='';
	  $request_uri = $home.strtr&#40; $request_uri, '-', '/' &#41;;		
	&#125;
	if&#40; $use_trailing_slashes &#41;
		$request_uri = trailingslashit&#40; $request_uri &#41;;
	$_SERVER&#91;'REQUEST_URI'&#93; = $request_uri;
&#125;

plw123htm_link_remove_html&#40;&#41;;

// Filter für die Linkerzeugung hinzufügen
function plw123htm_link_append_html&#40; $link &#41; &#123;
  $link = rtrim&#40; $link, '/' &#41;;
  return $link.'.html';
&#125;

function plw123htm_link_append_html_to_cat&#40; $link &#41; &#123;
	global $plw123htm_options;

  $link = rtrim&#40; $link, '/' &#41;;
	// Bei einem Kategorie-Link die Schrägstriche in Bindestriche umwandeln
	if&#40; $plw123htm_options&#91;'opt_category_link'&#93; &#41; &#123;
		$home = rtrim&#40; get_option&#40;'home'&#41;, '/' &#41;;
		$cat_base = get_option&#40;'category_base'&#41;;
		if&#40; empty&#40;$cat_base&#41; &#41;
		  $cat_base = '/category/';
		else
		  $cat_base = rtrim&#40; $cat_base, '/' &#41;.'/';
		$home .= $cat_base;
		if&#40; preg_match&#40; "#^$home&#40;.*&#41;#", $link, $matches &#41; &#41;
			$link = $matches&#91;1&#93;;
		else
			$home='';
	  $link = $home.strtr&#40; $link, '/', '-' &#41;;
	&#125;
  return $link.'.html';
&#125;

function plw123htm_link_append_html_to_arc&#40; $link &#41; &#123;
	global $plw123htm_options;
	
  $link = rtrim&#40; $link, '/' &#41;;
	// Bei einem Archiv &#40;Monat / Tag&#41; die Schrägstriche in Bindestriche umwandeln
	if&#40; $plw123htm_options&#91;'opt_archive_link'&#93; &#41; &#123;
		$home = rtrim&#40; get_option&#40;'home'&#41;, '/' &#41;.'/';
		if&#40; preg_match&#40; "#^$home&#40;.*&#41;#", $link, $matches &#41; &#41;
			$link = $matches&#91;1&#93;;
		else
			$home='';
	  $link = $home.strtr&#40; $link, '/', '-' &#41;;
	&#125;
  return $link.'.html';
&#125;

function plw_feed_link&#40; $link &#41; &#123;
  // html in Feedlinks entfernen
    if&#40; preg_match&#40; '~&#40;.*&#41;\.html&#40;/feed.*&#41;$~i', $link, $treffer &#41; &#41; &#123;
      $link = $treffer&#91;1&#93;.$treffer&#91;2&#93;;
    &#125;
    return $link;
&#125;

add_filter&#40; 'post_comments_feed_link', 'plw_feed_link' &#41;;
add_filter&#40; 'category_feed_link', 'plw_feed_link' &#41;;

if&#40; $plw123htm_options&#91;'use_post_link'&#93; &#41;
	add_filter&#40; 'post_link', 'plw123htm_link_append_html' &#41;;
if&#40; $plw123htm_options&#91;'use_page_link'&#93; &#41;
	add_filter&#40; 'page_link', 'plw123htm_link_append_html' &#41;;
if&#40; $plw123htm_options&#91;'use_category_link'&#93; &#41;
	add_filter&#40; 'category_link', 'plw123htm_link_append_html_to_cat' &#41;;
if&#40; $plw123htm_options&#91;'use_tag_link'&#93; &#41;
	add_filter&#40; 'tag_link', 'plw123htm_link_append_html' &#41;;
if&#40; $plw123htm_options&#91;'use_year_link'&#93; &#41;
  add_filter&#40; 'year_link', 'plw123htm_link_append_html' &#41;;
if&#40; $plw123htm_options&#91;'use_month_link'&#93; &#41;
  add_filter&#40; 'month_link', 'plw123htm_link_append_html_to_arc' &#41;;
if&#40; $plw123htm_options&#91;'use_day_link'&#93; &#41;
  add_filter&#40; 'day_link', 'plw123htm_link_append_html_to_arc' &#41;;

// Admin-Panel
function plw123htm_options_subpanel&#40;&#41; &#123;
	global $plw123htm_options;

  if &#40;isset&#40;$_POST&#91;'plw123htm_update'&#93;&#41;&#41; &#123;
		// Optionen
		$plw123htm_options&#91;'use_post_link'&#93; = isset&#40;$_POST&#91;'plw123htm_opt_upl'&#93;&#41;;
		$plw123htm_options&#91;'use_page_link'&#93; = isset&#40;$_POST&#91;'plw123htm_opt_ual'&#93;&#41;;
		$plw123htm_options&#91;'use_category_link'&#93; = isset&#40;$_POST&#91;'plw123htm_opt_ucl'&#93;&#41;;
		$plw123htm_options&#91;'use_tag_link'&#93; = isset&#40;$_POST&#91;'plw123htm_opt_utl'&#93;&#41;;
		$plw123htm_options&#91;'use_year_link'&#93; = isset&#40;$_POST&#91;'plw123htm_opt_uyl'&#93;&#41;;
		$plw123htm_options&#91;'use_month_link'&#93; = isset&#40;$_POST&#91;'plw123htm_opt_uml'&#93;&#41;;
		$plw123htm_options&#91;'use_day_link'&#93; = isset&#40;$_POST&#91;'plw123htm_opt_udl'&#93;&#41;;
		$plw123htm_options&#91;'opt_category_link'&#93; = isset&#40;$_POST&#91;'plw123htm_opt_ocl'&#93;&#41;;
		$plw123htm_options&#91;'opt_archive_link'&#93; = isset&#40;$_POST&#91;'plw123htm_opt_oal'&#93;&#41;;
		update_option&#40;'plw123htm_options', $plw123htm_options &#41;;
	
    ?><div class="updated"><p><strong>Einstellungen wurden gespeichert.</strong></p></div>
	<?php
  &#125;
	$plugindata = get_plugin_data&#40; __FILE__ &#41;;
	?>
	
<div class="wrap" style="height&#58;100%">
  <form method="post" id="plw123htm_optform" onsubmit="return createLists&#40;&#41;">
    <h2><?php echo $plugindata&#91;'Title'&#93;; ?> Einstellungen</h2>
	<p>Plugin-Version <?php echo $plugindata&#91;'Version'&#93;; ?></p>
	<p><?php echo $plugindata&#91;'Description'&#93;; ?></p>
	<fieldset class="options" style="clear&#58;both;"><legend>Optionen&#58;</legend>
	<table cellspacing="2" cellpadding="5" class="editform">
	<tr><th><label>Verwendung&#58; </label></th><td><input type="checkbox" name="plw123htm_opt_upl" value="1" <?php if&#40;$plw123htm_options&#91;'use_post_link'&#93;&#41; echo 'checked="checked"'; ?> /><label> für Blogbeiträge</label></td></tr>
	<tr><td>&nbsp;</td><td><input type="checkbox" name="plw123htm_opt_ual" value="1" <?php if&#40;$plw123htm_options&#91;'use_page_link'&#93;&#41; echo 'checked="checked"'; ?> /><label> für Seiten</label></td></tr>
	<tr><td>&nbsp;</td><td><input type="checkbox" name="plw123htm_opt_ucl" value="1" <?php if&#40;$plw123htm_options&#91;'use_category_link'&#93;&#41; echo 'checked="checked"'; ?> /><label> für Kategorien</label></td></tr>
	<tr><td>&nbsp;</td><td><input type="checkbox" name="plw123htm_opt_utl" value="1" <?php if&#40;$plw123htm_options&#91;'use_tag_link'&#93;&#41; echo 'checked="checked"'; ?> /><label> für Tags &#40;ab Wordpress 2.3&#41;</label></td></tr>
	<tr><td>&nbsp;</td><td><input type="checkbox" name="plw123htm_opt_uyl" value="1" <?php if&#40;$plw123htm_options&#91;'use_year_link'&#93;&#41; echo 'checked="checked"'; ?> /><label> für Jahresarchiv</label></td></tr>
	<tr><td>&nbsp;</td><td><input type="checkbox" name="plw123htm_opt_uml" value="1" <?php if&#40;$plw123htm_options&#91;'use_month_link'&#93;&#41; echo 'checked="checked"'; ?> /><label> für Monatsarchiv</label></td></tr>
	<tr><td>&nbsp;</td><td><input type="checkbox" name="plw123htm_opt_udl" value="1" <?php if&#40;$plw123htm_options&#91;'use_day_link'&#93;&#41; echo 'checked="checked"'; ?> /><label> für Tagesarchiv</label></td></tr>
	<tr><th><label>Optimierung&#58; </label></th><td><input type="checkbox" name="plw123htm_opt_ocl" value="1" <?php if&#40;$plw123htm_options&#91;'opt_category_link'&#93;&#41; echo 'checked="checked"'; ?> /><label> in Kategorielinks '/' durch '-' ersetzen</label></td></tr>
	<tr><td>&nbsp;</td><td><input type="checkbox" name="plw123htm_opt_oal" value="1" <?php if&#40;$plw123htm_options&#91;'opt_archive_link'&#93;&#41; echo 'checked="checked"'; ?> /><label> in Archivlinks '/' durch '-' ersetzen</label></td></tr>
	</table>
	</fieldset>
<div class="submit" style="clear&#58;both;">
  <input type="submit" name="plw123htm_update" value="Einstellungen speichern »" />
</div>
  </form>
 </div><?php
&#125;

function plw123htm_add_admin_panel&#40;&#41; &#123;
	if &#40;function_exists&#40;'add_options_page'&#41;&#41; &#123;
		add_options_page&#40;'123 HTML', '123 HTML', 8, basename&#40;__FILE__&#41;, 'plw123htm_options_subpanel'&#41;;
    &#125;
 &#125;

add_action&#40; 'admin_menu', 'plw123htm_add_admin_panel' &#41;;

?>

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 18.01.2009, 00:06
von Mork vom Ork
Vielleicht so:

Code: Alles auswählen

function plw123htm_link_append_html&#40;$link&#41; &#123;
    if &#40;preg_match&#40;'/^&#91;a-z&#93;&#91;a-z0-9.+-&#93;*&#58;/i', $link&#41; != 1&#41; &#123; // Kein Schema, keine absolute URI &#40;siehe RFC 3986, 3 & 3.1&#41;.
        $link = rtrim&#40;$link, '/'&#41; . '.html';
    &#125;
    return $link;
&#125;

Verfasst: 18.01.2009, 02:27
von w3news
vielleicht einfach eine if schleife einführen die beim aufruf der webseite das plugin nicht ausführt? man soll es ja nicht immer so kompliziert machen...

Verfasst: 18.01.2009, 09:35
von net(t)worker
wie wäre es denn wenn du dich direkt an denjenigen wendest der das plugin erstellt hat, damit er diesen Fehler direkt entfernen kann...