J'ai domain.com. Si l'utilisateur est connecté, il devrait se charger automatiquement domain.com/option-X où X est un choix prédéfini de l'utilisateur.
Donc, je fais cela en haut de index.php:
header("Location: /option-X");
Mais, si l'utilisateur n'est pas connecté, je choisis simplement automatiquement la première option comme celle-ci:
header("HTTP/1.1 301 Moved Permanently");
header("Location: /option-a");
Donc, j'ai deux questions concernant les implications de le faire:
L'effet du 301 serait que les moteurs de recherche indexeront/option-a au lieu de/option-x. Ce qui est probablement une bonne chose car/option-x n'est pas accessible pour l'index de recherche et pourrait donc avoir un effet positif sur l'index. Seulement si vous l'utilisez à bon escient ;-)
Après la redirection, mettez exit (); pour arrêter le reste du script à exécuter
header("HTTP/1.1 301 Moved Permanently");
header("Location: /option-a");
exit();
C'est mieux:
<?php
//* Permanently redirect page
header("Location: new_page.php",TRUE,301);
?>
Un seul appel, y compris le code 301. Notez également le chemin d'accès relatif au fichier dans le même répertoire (pas "/dir/dir/new_page.php", etc.), que tous les navigateurs modernes semblent prendre en charge.
Je pense que cela est valable depuis PHP 5.1.2, peut-être plus tôt.
Juste un conseil: utiliser http_response_code est beaucoup plus facile à retenir que d'écrire l'en-tête complet:
http_response_code(301);
header('Location: /option-a');
exit;
Les moteurs de recherche comme 301 redirigent mieux qu'un 404 ou un autre type de redirection côté client, pas de soucis.
L'utilisation du processeur sera minime, si vous voulez enregistrer encore plus de cycles, vous pouvez essayer de gérer la redirection dans Apache en utilisant htaccess, alors php n'aura même pas à s'impliquer. Si vous souhaitez charger le test d'un serveur, vous pouvez utiliser ab fourni avec Apache, ou httperf si vous recherchez un outil de test plus robuste.
Assurez-vous que die()
après votre redirection, et assurez-vous de faire votre redirection LE PLUS TÔT POSSIBLE pendant l'exécution de votre script. Il s'assure qu'aucune autre requête de base de données (le cas échéant) n'est gaspillée pour rien. C'est le seul conseil que je peux vous donner
Pour les moteurs de recherche, 301 est le meilleur code de réponse