2009-04-28 10 views
2

J'ai besoin d'utiliser le fichier .htaccess pour remplacer un mot dans une URL; quelque chose comme ceci:rediriger .htaccess après avoir remplacé un mot?

Exemple URL:

http://example.com/oldword/test-page.html 

Redirect à:

http://example.com/newword/test-page.html 

Comment puis-je utiliser mod_rewrite pour rediriger toutes les URL contenant /oldword/ à la même URL après avoir remplacé que mot?

Répondre

8

Cela devrait le faire pour vous:

RewriteRule ^oldword/(.*) /newword/$1 [L] 

Edit: Il pourrait ne pas fonctionner selon exactement vos paramètres RewriteBase, mais il sera proche.

Second Edit: Si vous avez besoin d'avoir une 301 Moved en permanence en-tête associé avec les anciennes URL, vous pouvez faire quelque chose comme cela aussi:

RewriteRule ^oldword/(.*) /newword/$1 [R=301,L] 
1

voir ici:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase/
RewriteRule ^oldword(.*)$ http://%{HTTP_HOST}/newword$1 [L] 
</IfModule> 

ciao ,

Chris

+0

Il est préférable de laisser le protocole, l'hôte et le port comme zombat. De plus, votre règle redirigerait également '/ oldword-and-some-more' vers'/newword-and-some-more' et je ne pense pas que ce soit ce que chiaf voulait. – Gumbo

0

de cette façon, vous pouvez rediriger indépendante sur ce qui l'entoure e e 'oldword', que vous voulez remplacer:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/

    # Replace 'oldword' with 'newword' and 301 redirect 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)oldword(.*)$ /$1newword$2 [L,R=301] 
</IfModule> 
Questions connexes