Comment en PHP URL de redirection
Dans ce tutoriel de programmation, nous allons examiner les différentes méthodes pour rediriger les URL en PHP. Plus précisément, nous examinerons 301 URL de redirection des méthodes par code, meta refresh et l'utilisation de paramètres d'emplacement d'en-tête PHP pour appeler une redirection.
2.) Il est une approche plus souple et polyvalent; vous pouvez exécuter plusieurs types de redirections en PHP que vous ne pouvez pas avec d'autres méthodes. Par exemple, les éléments suivants sont les plus courants types de redirection qui peut être fait en PHP:
a.) 301 état de redirection permanente.
b.) 302 état de redirection temporaire.
c.) Type Actualiser
Il y a encore un autre statut d'en-tête de redirection que vous pouvez faire avec PHP, mais ce tutoriel va se concentrer sur ces types de redirection des URL. Ceci est utile pour les webmasters débutant qui cherchent des moyens pour mettre en œuvre la redirection d'URL s'il est impossible de solutions avec d'autres communes, telles que .htaccess.
L'en-tête PHP () Fonction
1.) Ouvrez un éditeur de texte et tapez le code:
Enregistrer comme targetpage.php et le mettre dans le dossier htdocs.
2.) Ouvrez un autre fichier texte vide et entrez ce code:
Enregistrer comme originatingpage.php et le mettre aussi dans le dossier htdocs.
2.) Dans le navigateur, cliquez sur Affichage et cliquez sur « Firebug ».
3.) Cliquez sur l'onglet « Net ».
4.) Maintenant, cliquez sur la barre d'adresse du navigateur et appuyez sur Entrée pour charger la page.
5.) Vous remarquerez que après avoir appuyé sur entrer, les détails sur l'état d'en-tête du serveur montrent dans le panneau net Firebug. Voici comment il ressemble:

Depuis, il contient cette ligne:
1.) Par défaut, cette ligne:
Renvoie un état de redirection 302 trouvée.
2.) Après la redirection, la page est donnée avec un statut d'en-tête 200 OK.
Erreur: HTML ou même Restitution des espaces avant-tête ()
Maintenant, vous avez une bonne connaissance de base très comment utiliser header () pour rediriger les URL. Allons plus loin pour illustrer un écueil courant lorsque vous faites redirections. Essayez cette expérience:
1.) Aller à l'écriture originatingpage.php et ajouter une balise HTML avant:
Supposons que vous ayez ce code:
Avertissement: Impossible de modifier les informations d'en-tête - déjà envoyés par les en-têtes (output started at /home/phpdevel/public_html/originatingpage.php:6) dans /home/phpdevel/public_html/originatingpage.php en ligne 7
Que se passe t-il ici? La cause du problème est que vous HTML déjà sortie avant que la fonction d'en-tête (). Dans ce cas, ce sont le code HTML que vous avez déjà émis en fonction de l'exemple ci-dessus:
2.) Vous ne devriez jamais sortie même un caractère HTML simple, étiquette ou texte avant que la fonction d'en-tête (). Cela comprend des espaces. Les exemples ci-dessous ne fonctionneront pas:
Remarque: vous en sortie
étiquettes avant-tête.
Remarque: Vous avez un espace avant la balise d'ouverture PHP.
Le code de redirection sera:
Des exemples courants de code PHP redirection 301 (rappelez-vous toujours de placer ces codes HTML ci-dessus tout et faire en sorte que HTML ne soit pas premier sorti):
1.) conditionnelle redirection 301 (redirection lorsque l'URL correspond à une URL donnée)
// Equate l'URL actuelle avec la variable de currentpageurl de $
$ Currentpageurl = currentpageurl ();
// Obtenir l'URL de la page courante
$ Currentpageurl = $ _SERVER [ « HTTP_HOST '] $ _ SERVER [ « REQUEST_URI'].
// Vérifiez si l'URL est une version non-www
if (! (preg_match ( "/ www / i", currentpageurl de $)))
// redirection 301 vers la version www
header ( "Location: wwwversion de $", TRUE, 301);
Sortie();
>
?>
3.) 301 Rediriger tous les http https (non sécurisé pour sécuriser 301 redirection):
// Vérifiez si elle n'utilise pas le port sécurisé qui est 443
si ($ _SERVER [ "SERVER_PORT"]! = "443")
// ne se connecte pas via le port https sécurisé
. cette URL utilise le protocole http
// Rediriger vers la version sécurisée
en-tête ( "Lieu: secureversion $", TRUE, 301);
Sortie();
>
echo « Salut, cela rediriger une page non sécurisée à la page sécurisée équivalente »;
?>
Un autre type de redirection est le type de redirection de rafraîchissement. Cela se fait facilement en HTML comme une redirection meta refresh. En PHP, vous pouvez le faire comme suit:
Ce n'est pas un moteur de recherche convivial et redirect avec redirection 302, il ne doit pas être utilisé à des fins de référencement. La seule chose qui est acceptable pour la plupart des moteurs de recherche tels que Google est la redirection 301.