Seite 1 von 2

PHP Redirect per Header

Verfasst: 22.11.2009, 18:27
von tuennes
Hallo zusammen,
ich hab da mal eine ganz konkrete Frage zu PHP:

Wenn ich per

Code: Alles auswählen

header("Location: http://www.xyz.de/blabla.html"); 
einen Redirect über den HTTP-Header an den Browser schicke, hab ich dann noch einen Einfluss auf den gesendeten Fehlercode (301, 302,..)? Oder wird da automatisch ein Fehlercode mitgesendet, den man nicht mehr "manuell" ändern kann?

Verfasst:
von

Verfasst: 22.11.2009, 18:44
von xoni
das kannst Du so machen...

Code: Alles auswählen

header ('HTTP/1.1 301 Moved Permanently');
header ('Location: '.$location);

Verfasst: 22.11.2009, 19:43
von tuennes
Leider hatte ich exakt das schon ausprobiert. Gibt immer einen "Internal Server Error". Schade... :(

Verfasst: 22.11.2009, 20:01
von typer
Pack die $location mit in die Anführungszeichen - dann klappt's auch :wink:

Verfasst: 22.11.2009, 20:08
von Synonym
Pack die $location mit in die Anführungszeichen - dann klappt's auch

Code: Alles auswählen

header ('Location: '.$location);
ist 100% korrekt

Verfasst: 22.11.2009, 20:18
von Mork vom Ork
tuennes hat geschrieben:Leider hatte ich exakt das schon ausprobiert. Gibt immer einen "Internal Server Error". Schade... :(
Der Grund dafür steht, wie immer, im Fehlerprotokoll des Servers. Schau da rein.
typer hat geschrieben:Pack die $location mit in die Anführungszeichen
Nein. PHP ist zwar merkwürdig, aber so merkwürdig, dass Variablen in Anführungszeichen müssten, ist PHP dann doch nicht. Ganz im Gegenteil, damit handelt man sich eher Ärger ein.

Verfasst: 22.11.2009, 20:19
von tuennes
Das mit der Variable in den Hochkommas funktioniert nicht, weil dann die Variable nicht ausgewertet wird. - Aber das ist auch nicht das Problem. Die Zeile mit dem 301 funktioniert bei mir nicht. Vielleicht liegt es ja an Einstellungen des Servers. (Auf die ich wegen Shared Hosting keinen Einfluss habe...)

Verfasst: 22.11.2009, 20:25
von typer
Synonym hat geschrieben:ist 100% korrekt
...und wirft einen Fehler aus...

Ich mache es so header ("Location: https://www.xyz.de/"); und bekomme einen suchmaschinenfreudlichen redirect = https://www.webconfs.com/redirect-check.php

Mehr brauche ich nicht.

Verfasst: 22.11.2009, 20:52
von net(t)worker
typer hat geschrieben:
Synonym hat geschrieben:ist 100% korrekt
...und wirft einen Fehler aus...

Ich mache es so header ("Location: https://www.xyz.de/"); und bekomme einen suchmaschinenfreudlichen redirect = https://www.webconfs.com/redirect-check.php

Mehr brauche ich nicht.
vergiss das Tool ganz schnell.... das teilt dir nur mit ob die Suchmaschine dem redirect folgen kann oder nicht.... also wird auch ein 302, mit dem Google ja bekanntlich Probleme hat, als suchmaschinenfreundlich bezeichnet....

Verfasst: 22.11.2009, 21:37
von typer
Verstehe die Diskussion wohl nicht wirklich - und drücke mich vielleicht auch schludrig aus (natürlich gehören Variablen nicht in Anführungszeichen).

Diese beiden Zeilen

header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.xyz.tld");

erzeugen einen sauberen 301er, dafür braucht doch niemand ein Tool :-?
Falls die Frage eine andere war (geänderte Postings), bitte ich um Entschuldigung.
Gruß typer

Verfasst: 22.11.2009, 21:50
von tuennes
@typer: Wie ich oben schon schrieb, funktioniert die obere PHP-Zeile auf meinem Server nicht. Das hab ich schon vor meiner Anfrage hier im Forum ausprobiert. (Und ich hab jetzt gerade nochmal gekuckt, ob ich nicht vielleicht doch ein Semikolon vergessen... ;-) )

Verfasst: 22.11.2009, 21:53
von net(t)worker
typer hat geschrieben:erzeugen einen sauberen 301er, dafür braucht doch niemand ein Tool :-?
na, du hast doch selber ein Tool verlinkt um prüfen zu können ob der redirect suchmaschinenfreundlich ist.... und ich habe lediglich auf die Mängel dieses Tools hingewiesen und das es so im grunde untauglich ist...

Verfasst: 22.11.2009, 21:59
von tuennes
Dieses "Tool" wäre ja noch brauchbar, wenn die wenigstens den HTTP Status Code mitausgeben würden. So kann man nur rätseln, was für die ein "Search Engine Friendly Redirect" ist.

Verfasst: 22.11.2009, 22:08
von xoni
(Und ich hab jetzt gerade nochmal gekuckt, ob ich nicht vielleicht doch ein Semikolon vergessen...
... und, lag es daran?

Verfasst: 22.11.2009, 22:13
von tuennes
@wollbay: Nein. :)