htaccess rediriger vs php redirection
J'ai décidé de changer tout mon /dyanmic.php?UID=...
pages à /static/Name-From-DB
.
J'ai lu que la meilleure façon de faire de la redirection, le RÉFÉRENCEMENT, le sage, est de mettre en œuvre une 301 .htacess redirection:
(http://www.tamingthebeast.net)- Le bon sens - un htaccess 301
Redirection: Une redirection 301 est le plus
efficace et spider/visiteur amical
stratégie pour les sites web qui
sont hébergés sur les serveurs Apache.
Cependant, depuis que j'ai des milliers de pages, j'ai besoin d'utiliser la redirection, il semble assez inefficace d'avoir des milliers d'entrées dans le .fichier htacess:
redirect 301 /dynamid.php?UID=1 http://www.domain.com/static/Name-From-DB
redirect 301 /dynamid.php?UID=2 http://www.domain.com/static/Another-Name-From-DB
and so on...
Par conséquent, il semble que la façon efficace de le faire est par l'intermédiaire de la page PHP, le réglage de l'en-tête de redirection 301 selon l'UID:
<?
Header( "HTTP/1.1 301 Moved Permanently" );
//Getting the page static name from the DB according to the UID
$result = mysql_query('SELECT Name FROM DB WHERE UID='$_GET["uid"]'');
$row=mysql_fetch_assoc($result);
//Redirect to the new page
Header( "Location: http://www.domain.com/static/" . $row[0] );
?>
Ma question est de savoir si cette méthode aura un effet négatif sur mes pages du classement, considérant le paragraphe que j'ai cité ci-dessus que le meilleur moyen de faire une redirection est par le biais de la .htaccess.
Merci!
OriginalL'auteur Joel | 2010-11-04
Vous devez vous connecter pour publier un commentaire.
Les mêmes en-têtes seront envoyés le même quelle que soit la manière de le faire. Donc, pour l'utilisateur (ou d'un moteur de recherche), il ne sera toute différente, de sorte que le PHP ne pas avoir d'effets négatifs sur votre page rank par rapport à la .htaccess.
La manière de PHP sera un peu plus lent que chaque fois que la page est accessible à une requête de base de données est tiré. Si le site n'a pas trop de trafic vers ces pages, il ne devrait pas être un problème.
Dans votre page PHP, faire la connexion de base de données d'abord parce que si la page n'existe pas, vous voulez rediriger vers une autre page ou passer d'erreur 404 en-têtes à la place de la 301 en-tête.
OriginalL'auteur drew
Pas, il ne sera pas fourni que vous mettre en œuvre la redirection correctement dans votre fichier PHP! I. e., vous devriez probablement regarder le
Name
(paruid
) avant l'émission de la301
en-tête (et seulement problème quand unName
est trouvé — sinon, c'est un404
).Aussi, pourquoi ne pas vous exécutez une requête sur votre base de données, la production de l'redirige dans
.htaccess
formater et écrire directement à l'.htaccess
fichier? De cette façon, vous aurez à faire qu'une seule fois et n'avez pas de soins sur les non-existantuid
'.Modifier — pseudocode
Faisant cela, vous serez toujours en mesure de trouver vos redirections dans l'année (ils sont tous dans .htaccess) et il n'y a plus besoin de faire une recherche dans la base de données sur tous les "vieux style" demande.
Oui, dans ce cas, la dynamique PHP solution est probablement plus facile à entretenir et moins de ressources à long terme. N'oubliez pas de mettre en œuvre les rediriger correctement.
OriginalL'auteur jensgram
Pas. Le client voit la même chose dans les deux cas: une redirection 301. La seule différence pourrait être en retard, depuis le .htaccess est traitée avant que le fichier php, et la requête sql peut ajouter un peu de retard, mais je pense que le retard insignifiante petite.
OriginalL'auteur Aziz
Cela n'affectera pas votre pageranking - Google apprécie quand vous leur dites vos pages a été déplacé, et que vous ne pourrez pas mettre à jour votre site wíth duplicate content.
Mais comme dit dans d'autres réponses, l'en-tête est le même que vous envoyez à partir de PHP ou par l'intermédiaire d'Apache - votre accent devrait être la façon de réduire votre travail; à la fois maintenant et dans l'avenir.
En tapant manuellement la redirection en .htaccess vous réellement vous donner plus de travail alors nécessaire lorsque l'on compare dynamiquement ajouter des en-têtes par le biais de votre PHP en cas de besoin.
OriginalL'auteur Repox
Si vous êtes sur un serveur partagé, qui peut être le cas, mais en référence à un long ou même une courte liste de fichiers .fichier htaccess va être recherchées à chaque accès à un fichier dans votre page - Tous les graphiques, de chaque fichier include, etc.
Non seulement cela, mais, si vous êtes à plusieurs niveaux de profondeur, il vérifie .htaccess dans tous les répertoires parents. Donc, si votre fichier est dans la maison/dir1/dir2/dir3, il va vérifier .htaccess dans chaque répertoire à chaque accès à un fichier:
maison/dir1/dir2/dir3/
maison/dir1/dir2/
maison/dir1/
maison/
Mieux de le garder aussi léger que possible. Si vous n'êtes pas sur un serveur partagé, vous ne devez pas utiliser .fichiers htaccess. Entrez toutes les directives dans le fichier de configuration principal, en vertu de l'Annuaire et définissez la directive AllowOverride none".
OriginalL'auteur RationalRabbit