web-dev-qa-db-fra.com

Réécriture d'URL pour réparer les liens rompus dans un sous-répertoire - le sous-répertoire a été déplacé dans le répertoire racine

J'avais un site Web de commerce électronique hébergé sur http://mydomain.com/beta pendant plus d'un an. Finalement, j'ai décidé de déplacer le site Web à la racine http://mydomain.com.

J'avais fait pas mal de liens sur des forums, etc. lorsque mon site était hébergé dans le sous-répertoire/bêta.

Existe-t-il un moyen de créer un mod_rewrite grâce auquel tous les anciens liens que j'ai postés ne soient pas renvoyés sous forme de liens brisés, car le site est depuis longtemps hébergé dans/beta et est maintenant hébergé à la racine du site.

J'ai lu que mod_rewrite peut aider à résoudre ce problème, mais j'ai aussi appris que cela devait être fait avec précaution. Juste un conseil que ce site utilise une URL conviviale.

1
Pritam Borkar

Les règles ci-dessous redirigeront (301, redirection permanente - changeront également l'adresse dans la barre d'adresse) de toutes les demandes entrantes de http://www.example.com/beta/ vers http://www.example.com/

# activate rewrite engine
RewriteEngine on
RewriteBase /

# redirect from /beta/ to /
RewriteRule ^beta/(.*)$ http://www.example.com/$1 [R=301,L,QSA]

Si vous avez simplement besoin de réécrire (pour que l'URL reste la même dans la barre d'addition du navigateur - c'est-à-dire contient toujours /beta/), remplacez la dernière ligne par celle-ci:

RewriteRule ^beta/(.*)$ /$1 [L,QSA]
1
LazyOne

Il n'y a pas besoin de trop compliquer les choses, la ligne 'redirection' traitera tout ce qui se trouve dans vos sous-répertoires et fera la chose 301:

Redirect permanent /beta /
1
ʍǝɥʇɐɯ