2010-09-11 9 views
0

Est-ce exemple qood de redirection de la page vers une autre page de domaine:301 question de redirection?

RewriteCond %{HTTP_HOST} ^dejan.com.au$ [OR] 
RewriteCond %{HTTP_HOST} ^www.dejan.com.au$ 
RewriteRule ^seo_news_blog_spam\.html$ "http\:\/\/dejanseo\.com\.au\/blog\-spam\/" [R=301,L] 

ou bon vieux fonctionne aussi:

301 redirect seo_news_blog_spam.html http://dejanseo.com.au/blog/spam/ 

et ce qui est la différence?

Répondre

0

Unbeliavable, le problème était que la synthaxe était pas correct, donc au lieu de:

redirect 301 seo_news_blog_spam.html http://dejanseo.com.au/blog/spam/ 

il devrait ressembler à ceci:

Redirect 301 seo_news_blog_spam.html http://dejanseo.com.au/blog/spam/ 

One, première grande lettre a été la source de tous les ennuis, quelle perte de temps: D ça marche maintenant comme prévu! Merci à tous ceux qui ont participé, question résolue.

0

On peut supposer que les règles sont fonctionnellement équivalentes (bien, en supposant que http://dejanseo.com.au/blog/spam/ était censé être http://dejanseo.com.au/blog-spam/ comme le premier redirige vers, et l'hôte ne pointant à cet endroit est dejanseo.com.au avec ou sans www).

Le premier exemple utilise des directives de mod_rewrite, tandis que le second utilise certains de mod_alias. J'imagine que l'option préférée est la seconde pour ce cas particulier, si ce n'est parce que c'est un peu plus simple (il y a aussi des frais supplémentaires marginaux impliqués dans la création des expressions régulières utilisées par mod_rewrite, mais très mineures):

Redirect 301 seo_news_blog_spam.html http://dejanseo.com.au/blog-spam/ 

Cependant, je suppose que la raison pour laquelle vous avez le premier est qu'il a été créé en utilisant CPanel (basé sur les échappements inutiles dans le remplacement qui apparaissait auparavant dans la question d'un autre utilisateur où CPanel était le coupable). Ils sont allés avec l'option mod_rewrite parce qu'elle offre une flexibilité conditionnelle que la directive Redirect ne fait pas, et je suppose que cette flexibilité est reflétée quelque peu dans l'interface utilisée pour créer ces règles.

Vous remarquerez qu'il existe une condition de redirection ou non en fonction de votre nom d'hôte dans le premier exemple, identifié par RewriteCond. Cela vous permet d'effectuer des redirections plus puissantes basées sur plus que le chemin de la requête. Notez que mod_rewrite permet également des redirections internes invisibles à l'utilisateur, ce qui n'est pas prévu pour mod_alias, mais ce n'est pas la capacité dans laquelle il est utilisé ici. En dernière analyse, les noms d'hôtes de vos instructions RewriteCond devraient avoir leurs points échappés, car le caractère . a une signification particulière dans les expressions régulières. Vous pouvez également les combiner, les changer en direct string comparisons, ou les supprimer complètement (puisque j'imagine qu'ils ne font rien d'utile ici).

+0

J'ai oublié d'inclure la chose la plus importante et c'est que le fichier seo_news_blog_spam.html doit rediriger vers une autre URL de domaine. La technique mentionnée fonctionne-t-elle avec la redirection vers un autre domaine au lieu de simplement rediriger vers des URL locales? – dzhi

+0

@purpler - Oui. Pour 'Redirect' et' RewriteRule', vous pouvez placer une URL complète en tant que remplacement pour rediriger vers un autre domaine. Notez que si les domaines pointent vers le même serveur et la même racine de document, vous devrez utiliser la version 'RewriteRule' +' RewriteCond', car la vérification de l'hôte est requise dans ce scénario pour éviter une boucle de redirection. –