11
votes

Htaccess Redirect VS PHP Rediriger

J'ai décidé de changer tout mon /dyanmic.php?uid = ... pages à / statique / nom-from-db . J'ai lu que la meilleure façon de faire la redirection, du SEO sage, est de mettre en œuvre une redirection de 301 .htacess:

(http://www.tamingthebeast.net) - la bonne façon - un site htack 301 Redirection: une redirection de 301 est la plus Efficace et Spider / Visiteur amical stratégie autour de sites Web qui sont hébergés sur des serveurs exécutant Apache.

Cependant, depuis que j'ai des milliers de pages, je dois utiliser la redirection pour, il semble assez inefficace d'avoir des milliers d'entrées dans le fichier .Htacess: xxx < p> Par conséquent, il semble que le moyen efficace de le faire est via la page PHP, réglant l'en-tête sur la redirection 301 en fonction de l'UID: xxx

ma question est si cette méthode est si cette méthode Effectuera de manière négative sur les classements de mes pages, compte tenu du paragraphe que j'ai cité ci-dessus que la meilleure façon de faire une redirection passe par le .htaccess.

merci!


1 commentaires

Votre exemple de code PHP n'est pas sûr. Je contient un bogue SQL-injection! Vous devez échapper à $ _GET ["ID"]!


5 Réponses :


11
votes

Les mêmes en-têtes seront envoyés la même quelle que soit la façon dont vous le faites. Par conséquent, à l'utilisateur (ou à un moteur de recherche), il ne sera différent que de sorte que le PHP n'effectue pas négativement votre classement de page par rapport à la voie .htaccess.

La voie PHP sera un peu plus lente à chaque fois que la page est accessible qu'une requête de base de données est tirée. Si le site n'a pas trop de trafic allant à ces pages, cela ne devrait pas être un problème.

Dans votre page PHP, effectuez d'abord la connexion de la base de données car si la page n'existe pas, vous voudrez soit les rediriger vers une autre page ou passer des en-têtes d'erreur 404 au lieu de l'en-tête 301.


0 commentaires

2
votes

non. Le client voit la même chose dans les deux cas: une redirection de 301. La seule différence pourrait être de retard, car le fichier .htaccess est traité avant le fichier PHP, et la requête SQL peut ajouter un certain délai, mais je pense que le retard est insignifiant de manière insignifiante.


0 commentaires

4
votes

Ma question est si cette méthode s'effectuera de manière négative sur les classements de mes pages, compte tenu du paragraphe que j'ai cité au-dessus de la meilleure façon de faire une redirection consiste à traverser le .htaccess. P>

non fort>, il ne sera pas fourni em> que vous implémentez la redirection correctement dans votre fichier php! C'est-à-dire que vous devriez probablement rechercher le nom code> (par uid code>) avant em> émettre le 301 code> en-tête (et Seuls em> émettez-le lorsqu'un nom nom code> est trouvé - sinon c'est un 404 code>). p>

aussi, pourquoi ne pas gérer un Requête sur votre base de données, émettez les redirections dans .htaccess code> et écrivez cela directement sur le fichier .htaccess code>? De cette façon, vous devrez le faire uniquement une fois que strong> et ne devrez pas vous soucier de non existant uid code>'s. P>


Modifier strong> - Pseudocode P>

str ← ""
for each (uid, Name) in database:
    line ← concat("Redirect 301 /dynamid.php?UID=", uid, "http://www.domain.com/static/", Name, <newline>)
    append line to str
copy or write str to .htaccess


2 commentaires

Tout d'abord, merci pour la réponse. Le seul inconvénient que j'ai vu de cette manière est que finalement, avec le temps, je pense que la majorité des visiteurs arriveront à la / statique / page et non le /dynamic.php. Je pense donc que la liste 3000+ réidcrection dans le fichier .htaccess sera une surcharge car la plupart des visiteurs arriveront / statiques / et non / dynamiques, mais devront toujours passer à travers les 3000 lignes du .htaccess à voir s'ils correspondre à toute règle de redirection. Peut-être que je me trompe?


@Joel Oui Dans ce cas, la solution PHP dynamique est probablement plus facile à maintenir et à moins de ressources intensives à long terme. N'oubliez pas de mettre en œuvre le redirection correctement.



1
votes

Il n'affectera pas votre pageranking -. Google apprécie quand vous leur dites à vos pages a déménagé et que vous ne maintenir votre site avec un contenu en double

Mais comme dit dans d'autres réponses, l'en-tête est le même que vous l'envoyez de PHP ou via Apache - votre objectif devrait être de la manière de minimiser votre travail; Maintenant et à l'avenir.

En tapant manuellement la redirection dans .htaccess, vous vous donnez en réalité plus de travail, alors nécessaire lorsque vous comparez pour ajouter de manière dynamique les en-têtes à travers votre PHP en cas de besoin.


0 commentaires

0
votes

... La meilleure façon de faire une redirection est via le .htaccess ...

Si vous êtes sur un serveur partagé, cela peut être le cas, mais, en référence à une longue ou même une courte liste de fichiers, ce fichier .htaccess va être recherché avec chaque accès de fichiers dans votre page - Chaque graphique, chaque fichier inclut, etc.

Non seulement cela, mais si vous êtes quelques niveaux de profondeur, il vérifie les fichiers .htaccess dans tous les annuaires parents. Donc, si votre fichier est à home / dir1 / dir2 / dir3, il va vérifier les fichiers .htaccess dans chaque répertoire avec chaque accès de fichier:
Accueil / Dir1 / Dir2 / Dir3 /
Accueil / Dir1 / Dir2 /
Accueil / Dir1 /
Accueil /

meilleur pour le garder aussi léger que possible. Si vous n'êtes pas sur un serveur partagé, vous ne devez pas utiliser de fichiers .htaccess. Entrez toutes les directives dans le fichier de configuration principal, sous Directory et définissez l'adipoverride à «Aucun».


0 commentaires