php redirection avec chaîne de requête HTTP variables
atm je suis en utilisant les quatre lignes suivantes afin de rediriger l'utilisateur vers une autre page sur mon site:
<?php
header("Status: 301 Moved Permanently");
header("Location: ./content/index.html");
exit;
?>
mais il y a un problème avec l'utilisation de chaîne de requête HTTP, des variables comme http://< url >?param=blah
ils ne reçoivent pas ajouté à l'url compréhensible.
Est-il un choix judicieux pour la mise en œuvre de cette?
salutations
- Je crois que vous devriez utiliser pleinement qualifiedly uri donc, essayez
http://domain.tld/path?get=params
au lieu de/path?get=params
, sinon, vous pouvez créer une page d'atterrissage avec la méta rediriger élément. - Quel est le problème exactement? Il y a plusieurs interprétations possibles
- J'#m désolé c'était une domaine.tld/chemin?obtenez de l'=params
- mais j'ai écrit "< domaine >" système de changé automatiquement;)
Vous devez vous connecter pour publier un commentaire.
De faire la redirection, et assurez-vous une question supplémentaire marque ne s'affiche pas lorsque la chaîne de requête n'est pas passé à utiliser les éléments suivants
Je voudrais ajouter une option de plus...
De toute façon - comme d'autres l'ont dit, en utilisant (.htaccess) mod_rewrite serait probablement la meilleure option.
Cependant,
il y a sûrement peut-être de nombreuses situations que vous avez à faire ça en PHP => vous avez 2 options:
$_SERVER['QUERY_STRING']
http_build_query($_GET);
L'Option 2. - Avantages (+)
$_GET
params comme:$_GET['new_param']="new value";
(ajouter)unset($_GET['param_to_remove']);
(supprimer)$_GET
=> environnement indépendanthttp_build_query()
's le 1er param peut effectivement être un tableau ou un objet de sorte que vous pouvez construire un$_GET
-comme la demande de$_POST
ou$o = new YourObject();
si nécessaireL'Option 2. - Dissadvantages (-)
Pour plus d'info voir http://www.php.net/manual/en/function.http-build-query.php - un manuel PHP du site au sujet de la
http_build_query()
fonction quiReturns a URL-encoded string.
À l'aide de
$_SERVER['QUERY_STRING']
et d'ajouter à la fin de votre redirection peut-être ce que vous cherchez.EDIT: Juste remarqué que j'avais un peu de retard dans ma réponse.
Tout d'abord, pourquoi ne pas rediriger avec le mod rewrite?
Mais de toute façon, vous pouvez concat $_SERVER['QUERY_STRING'] à la fin de votre url
Ajouter le
$_SERVER['REQUEST_URI']
ouQUERY_STRING
. Faire unprint_r($_SERVER);
voir plus d'informations sur l'URL demandée.Je vous suggère aussi d'utiliser mod_rewrite pour cette tâche, vous pouvez être plus flexible.