PHP-Umleitung mit HTTP-Abfrage-String-Variablen
atm bin ich mit den folgenden vier Zeilen leiten den Benutzer auf eine andere Seite auf meiner website:
<?php
header("Status: 301 Moved Permanently");
header("Location: ./content/index.html");
exit;
?>
aber es gibt ein problem mit der Verwendung des HTTP-query-string-Variablen wie http://< url >?param=blah
Sie nicht bekommen, angehängt an den url-verständlicherweise.
Ist es ein kluger Schachzug für die Umsetzung dieser?
Grüße
Kommentar zu dem Problem
Ich glaube, dass Sie verwenden sollten, eine voll qualitativ uri so versuchen Sie
http://domain.tld/path?get=params
statt /Pfad?get=params
, ansonsten müssen Sie möglicherweise eine landing-page erstellen mit dem meta-redirect-element. Was ist das problem genau? Es gibt mehrere mögliche Interpretationen
I#m sorry, das war ein domain.tld/Pfad?get=params
aber ich schrieb "< Domäne >" system, verändert es automatisch;)
InformationsquelleAutor der Frage Graslandpinguin | 2011-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort regality
Tun die Umleitung und stellen Sie sicher, dass ein zusätzliches Fragezeichen nicht angezeigt wird, wenn query-string nicht übergeben, verwenden Sie die folgende
InformationsquelleAutor der Antwort jontro
Möchte ich hinzufügen, eine weitere Möglichkeit...
Sowieso - wie schon andere gesagt haben, mit (.htaccess) mod_rewrite wäre wahrscheinlich die beste option.
Jedoch,
es gibt sicherlich viele Situationen, wenn Sie haben, um es in der PHP => haben Sie 2 Möglichkeiten:
$_SERVER['QUERY_STRING']
http_build_query($_GET);
Option 2. - Vorteile (+)
$_GET
params, wie:$_GET['new_param']="new value";
(hinzufügen)unset($_GET['param_to_remove']);
(entfernen)$_GET
=> Umweltschonend unabhängighttp_build_query()
's 1st param kann tatsächlich JEDES array oder Objekt, so können Sie bauen eine$_GET
-gerne auf Anfrage von$_POST
oder$o = new YourObject();
wenn nötigOption 2. - Dissadvantages (-)
Weitere Infos finden Sie unter http://www.php.net/manual/en/function.http-build-query.php - ein Handbuch von PHP-Website über die
http_build_query()
Funktion, dieReturns a URL-encoded string.
InformationsquelleAutor der Antwort jave.web
Mit
$_SERVER['QUERY_STRING']
und anfügen an das Ende der Umleitung könnte das sein, was du bist suchen für.EDIT: Nur bemerkte, war ich ein bisschen spät mit meiner Antwort.
InformationsquelleAutor der Antwort eklundchristopher
First off, warum nicht umleiten mit mod rewrite?
Aber wie auch immer, Sie können concat $_SERVER['QUERY_STRING'] an das Ende des url
InformationsquelleAutor der Antwort Crayon Violent
Fügen Sie die
$_SERVER['REQUEST_URI']
oderQUERY_STRING
. Tunprint_r($_SERVER);
um mehr Informationen über die angeforderte URL.InformationsquelleAutor der Antwort Alec
Ich würde auch vorschlagen, zu verwenden mod_rewrite für diese Aufgabe, können Sie flexibler sein.
InformationsquelleAutor der Antwort dasrecht