Schon wieder Mod_Rewrite....

Psychomentis

Mitglied
Hallo Community,
nach endlosen versuchen benötige ich jetzt eure Hilfe.
Ich habe bei Strato mein Webhosting und versuche jetzt seit Stunden ein Mod_Rewrite einzurichten....

Ich möchte meine dynamische Webseite SEO freundlich gestalten...
Schritt 1:
Code:
<IfModule mod_rewrite.c>
	RewriteEngine on
	RewriteCond %{http_host} ^domain.de [NC]
	RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301,NC]
</IfModule>
Funktioniert wunderbar.... doch jetzt kommt das Problem
Schritt 2:
Code:
<IfModule mod_rewrite.c>
	RewriteEngine on
	RewriteCond %{http_host} ^domain.de [NC]
	RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301,NC]
	RewriteRule ^([^/]*)/([^/]*)$ /index.php?l=$1&t=$2 [L]
</IfModule>
Ich werde zwar von domain.de auf http://www.domain.de umgeleitet wie es ja auch sein soll doch wenn ich jetzt via PHP den Header ändere bleibt dieser bestehen trotz mod_rewrite Regel.
PHP:
$lang	  = (isset($_GET['l'])) ? $_GET['l'] : "";
$target	= (isset($_GET['t'])) ? $_GET['t'] : "";


if(empty($target)){
	header("Location: index.php?l=de&t=index");
	exit;
}

aus http://www.domain.de/index.php?l=de&t=index sollte http://www.domain.de/de/index/ werden doch das funktioniert leider nicht wie es soll... Auch wenn ich die URL manuell eintrage tritt die Regel nicht in Kraft.
 
Zuletzt bearbeitet:
Es war Wochenende ;)
Ich komme mit deiner Problembeschreibung noch nicht ganz klar.
Meinst du, dass du auf domain.de bleibst, wenn du via PHP den Header setzt, anstatt zu http://www.domain.de umgeleitet zu werden?
Die RewriteRules werden vor Aufruf des Skriptes durchgeführt, deshalb würde ich das nicht ganz nachempfinden können bzw. denken, dass dann noch eine andere Geschichte im Argen liegt.
 
Hallo erik s.
ich möchte ja wie bereits oben beschrieben meine Webseite SEO freundlich gestalten.
Habe mich bei Google und Co. umgeschaut welche vorraussetzungen erforderlich sind.
Im ersten Schritt möchte ich das die Webseite nur unter http://www.domain.de erreichbar ist.
Das heißt dass domain.de auf http://www.domain.de umgeleitet wird. Was ja auch wunderbar
funktioniert.

Im zweiten Schritt passe ich den header noch an, weil es sich ja um eine dynamische Webseite
handelt. Via PHP ändere ich jetzt die Adresse auf http://www.domain.de/index.php?l=de&t=index
das wird jetzt auch so im Browser angezeigt...

Im dritten Schritt möchte ich mit hilfe von Mod_Rewrite die URL maskieren so dass aus http://www.domain.de/index.php?l=de&t=index http://www.domain.de/de/index wird doch genau das funktioniert nicht...

Ich hoffe es ist jetzt etwas verständlicher wo mein Problem liegt.
 
mod_rewrite ist nicht dafür da, einen URI der Form
/index.php?l=de&t=index
in
/de/index
umzuwandeln, sondern genau andersherum aus einem suchmaschinenoptimierten URI einen zu formen, der auf reale (PHP-)Dateien verweist.
Du als Webmaster bist dafür verantwortlich, dass deine Seite nur Links der Form /de/index o.ä. enthält.

Mit einer RewriteRule und den darin enthaltenen regulären Ausdrücken suchst du dir dann quasi die Parameter raus, die deinem Skript übergeben werden.

Wenn du also jetzt unter deiner Domain den Pfad /de/index aufrufst, wird der Apache dank deiner RewriteRules auch etwas damit anfangen können, nicht anders herum!
 

Neue Beiträge

Zurück