J'ai été chargé de convertir environ 100 sites de mon instance multisite en HTTPS.
Je peux facilement écrire un script pour frapper la base de données et changer les valeurs siteurl
et home
en HTTPS, ce qui devrait forcer le site à mettre en file d'attente les scripts et les futures images intégrées à HTTPS, non?
Eh bien, je devrai également parcourir tout le post_content pour tous les liens internes, ainsi que les images en utilisant HTTP et les convertir en HTTPS.
Je pourrais probablement fouetter quelque chose ensemble pour le faire, mais je me demande ce que je dois changer d'autre. GUID n'est-ce pas? Si j'utilisais les commandes $ wpdb, aurais-je besoin de resérialiser la base de données par la suite?
J'aurais dû demander d'abord, existe-t-il un plugin fiable qui s'en occupera pour moi? Que dois-je savoir d'autre sur ce processus?
Remarques - Nous avons déjà tous les certificats SSL, c'est donc quelque chose dont je n'ai pas à m'inquiéter. - Le serveur exécute linux (redhat) et apache - Le multisite utilise des sous-répertoires - Je ne sais pas grand-chose d'autre, le serveur est en dehors de ma juridiction
http
enhttps
si vous ne changez pas la longueur de la chaîne aussi!Réponses:
Vous pouvez exécuter un script pour METTRE À JOUR toutes les URL et les guides vers https, si vous voulez une configuration propre.
Mais envisagez également des alternatives telles que:
Dans wp-config.php pour le backend:
Dans wp-config.php pour le frontend (ou exécutez un script db UPDATE):
Ensuite, vous pouvez simplement exécuter un script pour METTRE À JOUR toutes les URL de contenu wp_posts.
la source
Ce processus implique en fait l'achat d'un certificat de sécurité et son application à votre serveur pour vos sites Web. Cela forcera à son tour tout le monde à se connecter via une connexion sécurisée via le certificat présenté par votre serveur. Ces certificats sont appelés certificats SSL: http://www.DigiCert.com/SSL-Certificates
la source
Une façon possible d'effectuer cette modification de données consiste à utiliser WP-CLI sur le terminal.
Tout d'abord, vous devez vous assurer d'avoir une sauvegarde et une stratégie de restauration solide en cas de problème. Vous devez également tester cette procédure sur un système local ou de test avec une copie de la base de données active.
Les étapes de base sont, pour itérer sur chaque site de votre réseau et remplacer les URL de chaque site à l'aide de la
search-replace
commande WP-CLI .Voici une doublure bash:
Examinons cela:
Celui-ci démarre une boucle pour chaque ligne de la sortie de la commande à l'intérieur
$()
et écrit chaque ligne dans la variable$SITE
.C'est la
site list
commande WP-CLI qui vous donne une liste de toutes les URL de site dans votre réseau. Exécutez cette commande uniquement, vous verrez probablement quelque chose comme:Maintenant
va juste démarrer la partie de la boucle intérieure.
La commande de boucle interne fait toute la magie (je la divise en deux lignes en utilisant
\
pour la lisibilité):Nous disons WP-CLI de recherche pour
$SITE
(par exemplehttps://your-site.tld/
) et le remplacer par une version légèrement modifiée:${SITE/http:/https:}
. Il s'agit d'une opération de remplacement de chaîne bash qui remplacehttp:
parhttps:
. (Donc, en résolvant les variables, la commande ressembleraitwp search-replace "http://your-site.tdl/" "https://your-site.tld/"
).search-replace
possède de nombreuses options possibles décrites dans la documentation . Dans l'exemple, j'ai utilisé ceux-ci:--dry-run
et--verbose
sont clairement utiles pour tester la commande.--network
applique également l'opération de recherche et de remplacement aux tableaux de réseau.--precise
indique à WP-CLI d'utiliser PHP au lieu de SQL pour rechercher et remplacer les valeurs. Cela garantit que les valeurs sérialisées ne seront pas corrompues.Enfin, la boucle est fermée avec
Permettez-moi de le souligner à nouveau: testez-le profondément avant de commencer à l'utiliser en production. Vous devez comprendre comment cela fonctionne et ce que fait WP-CLI. J'ai utilisé WP-CLI avant d'effectuer de telles recherches et de remplacer des opérations pour migrer des multisites vers d'autres noms de domaine, mais pas pour passer de
http
àhttps
.Il peut y avoir des cas limites: WP-CLI lit toujours le
wp-config.php
et essaie de trouver un «réseau» correspondant dans la base de données en utilisant les constantes dewp-config.php
. Si vous manipulez un site (la base de données) mais pas l'autre (les constanteswp-config.php
), vous pourriez avoir des ennuis. Mais pour votre cas, je pense que ne sera pas un problème car WP repose généralement surDOMAIN_CURRENT_SITE
etPATH_CURRENT_SITE
et ils ne changeront pas de toute façon. Mais encore une fois, testez cela en profondeur.Avec un peu plus de magie bash, vous pouvez également diviser cette boucle en morceaux de 5 ou 10 sites et la parcourir étape par étape.
la source
Pour vous assurer que tous vos sites Web utilisent HTTPS dans votre
post_content
, vous pouvez effectuer l'une des deux options suivantes:1. Backend: exécuter une requête SQL
Pour vous assurer que tous vos liens HTTP sont définis comme HTTPS, utilisez la requête SQL suivante:
OLD_URL
sera remplacé parhttp://example.com
(non HTTP)NEW_URL
sera remplacé parhttps://example.com
(HTTPS)Cela couvrira le
siteurl
,home
et tout votre contenu sur votre site Web vers le nouveau HTTPS.2. Frontend: utilisez le plugin Search & Replace
Une approche plus conviviale consiste à utiliser le plugin Rechercher et remplacer pour remplacer facilement toutes les tables qui contiennent votre ancien HTTP et les changer en HTTPS. Le processus est facile à utiliser et vous pouvez prévisualiser les tables et les lignes qui seront affectées avant d'appliquer ces modifications.
Avertir
Avant d'appliquer des modifications, je pense qu'il va sans dire de toujours faire une sauvegarde de votre base de données en cas de problème.
la source
HTTP est un protocole par défaut, qui est utilisé par la plupart des sites Web pour gérer les informations sur le Web. Votre site Web fonctionne sur HTTPS sans aucun message d'erreur, cela signifie que votre certificat a été installé correctement. Vous devez migrer l'intégralité de votre site Web de HTTP vers HTTPS.
Apprenez à déplacer HTTP vers HTTPS pour WordPress
la source