2012-10-15 3 views
0

C'est assez basique mais je ne trouve pas de solution qui fonctionne. J'ai juste besoin de rediriger les URL d'un ancien répertoire à une nouvelle URL.Simple RewriteRule pour le premier répertoire

Exemple:

/search/whatever 

à

/jobs/search 

Je ne ai pas besoin de cartographier le tout, je veux tout le trafic vers une URL qui commence/recherche redirigés (301).

En utilisant ceci:

RewriteRule /search /jobs [R=301,L] 

Works mais j'ai une URL dans les/emplois qui obtient également maintenant redirigé:

/jobs/search 

Et ce qui ne va pas - il doit correspondre au début de l'URL. Donc j'ai essayé ceci:

RewriteRule ^/search /jobs [R=301,L] 

Mais cela ne redirige pas du tout, donc je suis bloqué.

Un autre exemple serait ceci:

RewriteRule/Carrières-à-pur/emea/Contactez-nous/Carrières-à-pur [R = 301, L]

Cela crée une boucle comme carrière -at-pure est dans l'ancienne et la nouvelle URL, mais les suivantes ne sont pas mises en correspondance et redirigées:

RewriteRule ^/careers-at-pure/emea/contact-us/careers-at-pure [R = 301, L]

Des suggestions?

Merci

Répondre

0

Le slash est retiré de l'URI quand ils sont mis par les règles de réécriture dans les fichiers .htaccess. Vous devez supprimer la barre oblique de la regex, ou au moins la rendre facultative:

RewriteRule ^/?search /jobs [R=301,L] 
+0

Merci, Jon. Malheureusement, je ne vois toujours pas de redirection. Il redirige uniquement lorsque je supprime le caractère ^. –

+0

@RussBack Est-ce parce que tout cela se passe dans un sous-répertoire? –

+0

l'exigence est pour un nouveau site. Les anciennes URL doivent être redirigées vers de nouvelles. En y réfléchissant davantage, le nouvel emplacement n'est pas un sous-répertoire, c'est une URL qui est réécrite dans /index.php?jobs. Pour garder les URL propres, j'aimerais rediriger/rechercher vers/jobs cependant. Cela a-t-il du sens? –