J'ai un site de critiques de voyages basé sur Drupal 5.x vers lequel je passe sous Wordpress 3.x (même nom de domaine).
Le site Drupal est structuré comme suit:
www.example.com/travel-guides
(ce sont des pages de haut niveau) - ce ne sont que quelques-unes.www.example.com/<filename>.html
(nom de fichier est le nom d'un lieu/attraction, etc.). - constitue l'essentiel du contenu du site.Dans WordPress, la configuration est assez simple. Tout le contenu suit un simple permalien:
www.example.com/postname
Comment définir une règle dans .htaccess pour rediriger en masse toutes les pages? Il y a plus de 600 pages et je ne veux pas définir manuellement les règles de redirection pour toutes.
Au-dessus des règles de réécriture de WordPress, ajoutez:
RedirectMatch permanent ^/([^/]+)\.html$ /$1
Cela attrapera example.com/foo.html
mais pas example.com/travel-guides/foo.html
. Pour intercepter toutes les URL se terminant par .html
, supprimez le premier ^
du modèle.
Pour rediriger toutes les URL se terminant par .html
sauf celles dans travel-guides
, vous avez besoin de mod_rewrite:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/travel-guides/
RewriteRule ([^/]+)\.html$ /$1 [L,R=301]