2010-10-22 3 views
4

Je voudrais rediriger: http://site.com/FOO/BAR/BAZhtaccess 301 redirect certain modèle d'URL

-http://site.com/FOO/NEW/BAZ

donc, subsitute le deuxième segment dans mon URL avec un nouveau.

Idéalement, je voudrais utiliser HTACCESS et un 301 car ces pages ont été déplacées en permanence.

La structure de l'URL ne changera pas. Idéalement, il n'y aura pas de chaîne de requête, mais cela n'a pas trop d'importance.

grâce

8EDIT * - Je dois préciser et dire que "BAR" est pas un caractère générique - il est un mot. l'exemple de la vie réelle est:

vieux Liens: site.com/events/details/XXX

nouveaux liens: site.com/events/VIEW/xxx

Je ne veux pas: site.com/events/add-new

à Redirect. JUSTE si le second segment est égal à "détails" dans mon cas.

plus de précision désolé n'ont pas été exactement clair.

URL existante: site.com/events/details/%wildcard%

devrait rediriger vers site.com/foo/view/%wildcard%

mais rien d'autre.

+0

Veuillez vérifier la deuxième modification dans ma réponse. Celui-ci devrait fonctionner pour vous, je l'ai essayé. – rhino

Répondre

2

Qu'en est-il de celui-ci?

RewriteEngine On 
RewriteRule ^FOO/(.+)/BAZ$ FOO/NEW/BAZ [L,R=301] 

EDIT: Je ne sais pas, mais vous devrez peut-être passer l'adresse complète, voici un autre exemple de code:

RewriteEngine On 
RewriteRule ^FOO/(.+)/BAZ$ http://site.com/FOO/NEW/BAZ [L,R=301] 

2ème édition: est ici la solution finale. Je l'ai essayé aujourd'hui sur un hébergement partagé et ça a bien marché.

RewriteEngine On 
RewriteRule ^FOO/(.+)/BAZ$ http://site.com/FOO/NEW/BAZ/ [L,R=301] 

La seule différence est que le dernier exemple contient une barre oblique (/) à la fin de la nouvelle voie.

+0

merci, va le tester maintenant. J'ai aussi légèrement modifié mon message. – Ross

+0

pas tout à fait de travail, mais +1 pour l'aide de toute façon – Ross

+0

musta été la barre oblique, ce truc htaccess boggles mon esprit. Infiniment reconnaissant – Ross