Seite 1 von 1

Mit htaccess lieber ein 301 als ein 302, aber wie?

Verfasst: 11.01.2009, 19:26
von Beach-Baer
Moin Moin!

Ich habe hier ein kleines htaccess Problem.

Eine Modifikation auf meiner HP macht aus einer URL: /images/details.php?image_id=1706&sessionid=blabla eine etwas SUMA-freundlichere URL: /images/image170.htm

Dazu waren ein paar Änderungen im PHP Programmcode und eine htaccess erforderlich. Das ganze läuft soweit auch ohne Probleme. Wenn ich nun das Bild mit der ID 170 lösche, erhalten die Crawler nun keinen 404, sondern logischerweise ein 302. Ich würde gerne die htaccess so modifizieren, dass ich gezielt die gelöschten URLs einbinde, um für Diese ein 301 auf die Startseite zu erzeugen, aber ich bekomme das nicht gebacken. :oops:

Die Regel schaut so aus:
RewriteRule ^image([0-9]+)\.htm$ details.php?image_id=$1&%{QUERY_STRING}
RewriteRule ^image([0-9]+)\.([a-zA-Z0-9]+)\.htm$ details.php?image_id=$1&mode=$2&%{QUERY_STRING}

Würde mich freuen, wenn vielleicht jemand ein Lösungsansatz für mich hat?

LG Kay

Verfasst:
von

Verfasst: 12.01.2009, 01:52
von chris21
erhalten die Crawler nun keinen 404, sondern logischerweise ein 302
Was ist daran logisch? Warum ein 302?

Sendet die details.php einen 302er, wenn ein Image nicht vorhanden ist?

Denn nur so könnte ich Deine Aussage nachvollziehen.

Ansonsten, wenn auf die Anfrage auf image170.htm (im Falle des Nichtvorhandenseins des Image 170) ein 404 kommen soll, statt der vermutlich von der details.php ausgegebenen 302 Umleitung auf die fotogalerie.php, dann müsstest du die details.php so bearbeiten, dass sie einen 404er als Header ausgibt oder einen 301.

Mit Deinen .htaccess Anweisungen hat das aber nichts zu tun.

Derzeit leitet die details.php dann ja per 302 auf die fotogalerie.php - vermutlich gesteuert durch 4images.

Da musst Du einfach in der details.php die header-Anweisung:

Code: Alles auswählen

header("Location: ....fotogalerie.php");
finden und davor eintragen:

Code: Alles auswählen

header("HTTP/1.1 301 Moved Permanently");
Dadurch würde statt eines 302 ein 301 Header gesendet werden.

Verfasst: 12.01.2009, 07:41
von Beach-Baer
Moin Chris!
chris21 hat geschrieben:Sendet die details.php einen 302er, wenn ein Image nicht vorhanden ist?
Ja, genau so war es.
chris21 hat geschrieben:finden und davor eintragen:
header("HTTP/1.1 301 Moved Permanently");
Ich hatte dieses Problem vor langer Zeit einmal im 4Images Forum angesprochen, aber damals gab es dort keine Lösung. Aber hier findet sich geballte Kompetenz... :D

Dein Lösungsansatz war ein Volltreffer (Daumenhochsmilie)

VIELEN DANK

und viele Grüße aus Hamburg

Kay