Passer un site WordPress en HTTPS avec Duplicator
Plutôt que d'éditer tous les contenus et remplacer les liens internes en http par des https !
- Installer le certificat SSL (dépend de l'hébergeur)
- Installer Duplicator
- Créer un paquet - toutes options par défaut
- Renomer le répertoire racine du site, créer un nouveau répertoire racine et y copier le paquet
- mv htdocs htdocs-avant-migration-https
- mkdir htdocs ; cd htdocs
- cp ../htdocs-avant-migration-https/wwp-snapshots/20170526* .
- Afficher l'URL http://monsite.com/20170526....._installer.php
- Cocher la case "I have read and accept all terms & notices (required to continue)" → Next
- Action: Connect and Remove All Data
- Host: le-serveur-mysql
- Database: le-nom-de-la-base-de-données
- User: le-userdb
- Password: le-pwddb
- Options: par défaut → Next
- New settings
- URL: https://monsite.com
- Options:
- cocher "Enable Extended URL Replace (Searches multiple protocols: '//', 'http', 'https')"
- cocher dans WP-Config File: "Enforce on Admin" et "Enforce on Login" → Next
- cliquer sur "Site login"
- cliquer sur "Remove installation files"
- cliquer sur "Supprimer le cache"
- dans Réglages → Général → Adresse web de WordPress (URL) → régler https://monsite.com
- Certains Thèmes ont des URL en dur par exemple dan finctions.php, alors un bon vieux "perl -pi -e s/http/https/g functions.php" leur font le plus grand bien !
- Enfin, éditer le fichier .htaccess pour forcer la redirection https, placer la règle de redirection en premier dans le fichier :
# BEGIN Redirect to https <ifmodule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </ifmodule> # END Redirect to https
Et ça marche