J'aide à déplacer un site WordPress d'un domaine à un autre, ce qui implique une modification de la structure du lien permanent. Je sais que je peux utiliser une entrée . Htaccess, mais je ne connais pas (encore) bien les expressions régulières.
J'ai besoin de changer ça:
http://www.oldwebsite.com/2013/09/title-of-post.html
pour ça:
http://www.newwebsite.com/title-of-post
supprimer l'année, le mois et .html
de chaque URL.
J’ai fait cela avec Apache mod_rewrite
et cela fonctionne très bien. Ajoutez simplement ces trois lignes à la configuration . Htaccess ou Apache2 sur l’ancien serveur. Cela devrait bien fonctionner/couvrir tous les fichiers .html
ainsi que d’autres variantes:
RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /([^\ ]+)\.html
RewriteRule ^([0-9]{4})/([0-9]{2})/([^\ ]+)\.html?$ http://www.newwebsite.com/$3 [L,R=301]
RewriteRule ^([0-9]{4})/([^\ ]+)\.html?$ http://www.newwebsite.com/$2 [L,R=301]
RewriteRule ^([0-9]{4})/([0-9]{2})/?$ http://www.newwebsite.com/ [NC,L,R=301]
RewriteRule ^([0-9]{4})/?$ http://www.newwebsite.com/ [NC,L,R=301]
RewriteRule ^(.*)$ http://www.newwebsite.com/$1 [NC,L,R=301]
Ainsi, les deux premières RewriteRule
entrées gèrent les demandes adressées aux URL suivantes:
http://www.oldwebsite.com/2013/04/test.html
http://www.oldwebsite.com/2013/test.html
Et maintenant envoyez-les à:
http://www.newwebsite.com/test
Les deux entrées suivantes RewriteRule
gèrent les demandes adressées à ces URL racine de niveau répertoire:
http://www.oldwebsite.com/2013/04/
http://www.oldwebsite.com/2013/
Pour cela l'URL de base de votre site:
http://www.newwebsite.com/
Et la dernière RewriteRule
est configurée pour saisir toutes les autres URL qui ne répondent pas aux critères ci-dessus et les envoyer à l’URL principale tout en transmettant le paramètre complet.
Je suggérerais que vous les testiez en utilisant curl -I
comme suit:
curl -I http://www.oldwebsite.com/2013/04/test.html
Cela vous montrera la sortie de l'en-tête Apache et vous dira exactement à quel endroit les pages sont redirigées sans avoir à gérer un casse-tête complet du navigateur Web lors du débogage de ce genre de choses.