permanente Weiterleitung mittels .htaccess
Ulysses
- webserver
Hallo liebe Alle!
Ich scheitere gerade an dem Versuch eine permanente Weiterleitung mittels .htaccess zu realisieren.
Folgendes habe ich in die .htaccess-Datei geschrieben:
Redirect permanent /index.php?id=1 http://www.example.com/datei1.html
Redirect permanent /datei3.html http://www.example.com/datei3neu.html
Gebe ich nun die Adresse http://www.example.com/index.php?id=1 in meinen Browser ein, so erscheint trotzdem die Seite http://www.example.com/index.php?id=1 und nicht http://www.example.com/datei1.html
Die Adresse http://www.example.com/datei3.html wird hingegen schon auf http://www.example.com/datei3neu.html weitergeleitet.
Was mache ich falsch und wie muss ich vorgehen, um eine Weiterleitung der Datei http://www.example.com/index.php?id=1 nach http://www.example.com/datei1.html zu erreichen?
Danke und LG Ulysses
Hallo!
Folgendes habe ich in die .htaccess-Datei geschrieben:
Redirect permanent /index.php?id=1 http://www.example.com/datei1.html
Redirect permanent /datei3.html http://www.example.com/datei3neu.htmlGebe ich nun die Adresse http://www.example.com/index.php?id=1 in meinen Browser ein, so erscheint trotzdem die Seite http://www.example.com/index.php?id=1 und nicht http://www.example.com/datei1.html
Die Adresse http://www.example.com/datei3.html wird hingegen schon auf http://www.example.com/datei3neu.html weitergeleitet.
Vermutung: Innerhalb der .htaccess trennt der Apache die URL schon nach Query-String und Rest auf, und im Redirect kann nur dieser Pfad-Teil abgegriffen werden.
Verwende Rewriting, damit kannst du den Redirect feiner steuern - aber auch dort ist der Query-String vom Rest der URL schon getrennt zu behandeln.
Sven
Hi!
Vermutung: Innerhalb der .htaccess trennt der Apache die URL schon nach Query-String und Rest auf, und im Redirect kann nur dieser Pfad-Teil abgegriffen werden.
Verwende Rewriting, damit kannst du den Redirect feiner steuern - aber auch dort ist der Query-String vom Rest der URL schon getrennt zu behandeln.
Sven
Hab schon befürchtet, dass ich die Rewrite-Engine anwerfen und mich damit näher beschäftigen muss.
Danke für deine Antwort!
Ulysses
Hi!
Hallo liebe Alle!
Ich scheitere gerade an dem Versuch eine permanente Weiterleitung mittels .htaccess zu realisieren.
2. Versuch: Diesmal mittels PHP - leider hab ich damit noch keine Erfahrung! Folgenden Code habe ich mit Hilfe des 'Quakenet/#php Tutorials' zusammengestellt.
Datei 'index.php'
<?php
switch ($_GET['id']) {
case "1":
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.example.com/datei1.html");
break;
case "2":
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.example.com/datei2.html");
break;
default:
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.example.com/index.html");
break;
}
?>
Das funktioniert. Jetzt wird index.php?id=1 nach http://www.example.com/datei1.html weitergeleitet. Nun meine Frage: Gibt es dagegen irgendwelche Einwände z.B. in Bezug auf Sicherheit? Ich hab, wie gesagt, noch absolut keine Erfahrung mit PHP.
Danke und LG Ulysses
Hi,
Nun meine Frage: Gibt es dagegen irgendwelche Einwände z.B. in Bezug auf Sicherheit?
Nein, eigentlich nicht. Allerdings solltest du abfragen, ob es $_GET['id'] auch gibt - denn sonst wirft dir das Script einen Fehler (bei ordentlich eingestelltem error_reporting). Also isset() oder empty() verwenden.
Und statt zwei mal header() aufzurufen, koenntest du den Statuscode auch ueber den dritten Parameter mitgeben.
MfG ChrisB
Hi!
Danke für die Anregungen! Werd' gleich mal in der Doku nachlesen.
LG Ulysses