Fui encarregado de converter cerca de 100 sites na minha instância multisite para HTTPS.
Posso escrever facilmente um script para acessar o banco de dados e alterar os valores siteurl
e home
para HTTPS, que por sua vez deve forçar o site a enfileirar scripts e futuras imagens incorporadas em HTTPS, certo?
Bem, também precisarei passar por todo o post_content para obter links internos, bem como imagens usando HTTP e convertê-los em HTTPS.
Eu provavelmente poderia chicotear alguma coisa para fazer isso, mas estou me perguntando o que mais preciso mudar. GUIDs, certo? Se eu usasse os comandos $ wpdb, seria necessário resserializar o banco de dados posteriormente?
Eu deveria ter perguntado primeiro, existe algum plugin confiável que cuide disso para mim? O que mais eu preciso saber sobre esse processo?
Notas - Já temos todos os certificados SSL, portanto é algo com o qual não preciso me preocupar. - O servidor está executando o linux (redhat) e o apache - O multisite está usando subdiretórios - Não sei muito mais, o servidor está fora da minha jurisdição
http
parahttps
se não alterar também o comprimento da string!Respostas:
Você pode executar um script para atualizar todos os URLs e guias para https, se desejar uma configuração limpa.
Mas considere também alternativas como:
Em wp-config.php para o back-end:
Em wp-config.php para o front-end (ou execute um script db UPDATE):
Em seguida, você pode simplesmente executar um script para atualizar todos os URLs do conteúdo wp_posts.
fonte
Na verdade, esse processo envolve a compra de um certificado de segurança e a aplicação ao servidor para seus sites. Por sua vez, isso forçará todos os visitantes a uma conexão segura através do certificado apresentado pelo seu servidor. Esses certificados são chamados de certificados SSL: http://www.DigiCert.com/SSL-Certificates
fonte
Uma maneira possível de fazer essa modificação de dados é usar o WP-CLI no terminal.
Antes de tudo, verifique se você tem um backup e uma sólida estratégia de restauração, caso algo dê errado. Você também deve testar este procedimento em um sistema local ou de teste com uma cópia do banco de dados ativo.
As etapas básicas são: iterar em cada site da sua rede e substituir os URLs de cada site usando o
search-replace
comando do WP-CLI .Aqui está uma linha de base do bash:
Vamos examinar isso:
Aquele inicia um loop para cada linha da saída do comando dentro
$()
e grava cada linha na variável$SITE
.Esse é o
site list
comando WP-CLI que fornece uma lista de todos os URLs do site na sua rede. Execute este comando apenas, você provavelmente verá algo como:Agora
apenas iniciará a parte interna do loop.
O comando loop interno faz toda a mágica (eu o divido em duas linhas usando
\
para facilitar a leitura):Nós dizemos WP-CLI para pesquisar para
$SITE
(por exemplohttps://your-site.tld/
) e substituí -lo com uma versão ligeiramente modificada:${SITE/http:/https:}
. Esta é uma cadeia de caracteres bash que substitui a operação que substituihttp:
porhttps:
. (Então, resolvendo as variáveis, o comando seria semelhantewp search-replace "http://your-site.tdl/" "https://your-site.tld/"
).search-replace
possui muitas opções possíveis descritas na documentação . No exemplo, usei estes:--dry-run
e--verbose
são claramente úteis para testar o comando.--network
aplica a operação de pesquisa e substituição também às guias da rede.--precise
diz ao WP-CLI para usar PHP em vez de SQL para pesquisar e substituir os valores. Isso garante que os valores serializados não sejam corrompidos.Finalmente, o loop é fechado com
Deixe-me enfatizar novamente: teste isso profundamente antes de começar a usá-lo na produção. Você deve entender como ele funciona e o que o WP-CLI faz. Eu usei o WP-CLI antes para executar essas pesquisas e substituir operações para migrar multisites para outros nomes de domínio, mas não para alternar de
http
parahttps
.Pode haver alguns casos extremos: WP-CLI ainda lê o
wp-config.php
e tentar encontrar uma correspondência «rede» na base de dados utilizando as constantes nowp-config.php
. Se você estiver manipulando um site (o banco de dados), mas não o outro (as constanteswp-config.php
), poderá ter problemas. Mas para o seu caso, eu acho que não vai ser um problema como WP normalmente se baseia emDOMAIN_CURRENT_SITE
ePATH_CURRENT_SITE
e eles não vão mudar de qualquer maneira. Mas, novamente, teste isso minuciosamente.Com um pouco mais de magia do bash, você também pode dividir esse loop em pedaços de 5 ou 10 sites e passar por ele passo a passo.
fonte
Para garantir que todos os seus sites usem HTTPS no seu
post_content
, você pode executar uma das duas opções:1. Back-end: executa uma consulta SQL
Para garantir que todos os seus links HTTP estejam definidos como HTTPS, use a seguinte consulta SQL:
OLD_URL
será substituído porhttp://example.com
(não HTTP)NEW_URL
será substituído porhttps://example.com
(HTTPS)Isto irá cobrir o
siteurl
,home
e todo o seu conteúdo em seu site para o novo HTTPS.2. Front-end: use o plug-in Search & Replace
Uma abordagem mais amigável é usar o plug-in Search & Replace para substituir facilmente todas as tabelas que contêm seu HTTP antigo e alterá-las para um HTTPS. O processo é fácil de usar e você pode visualizar quais tabelas e linhas serão afetadas antes de aplicar essas alterações.
Pré-aviso
Antes de aplicar qualquer alteração, acho desnecessário fazer sempre um backup do seu banco de dados, caso algo dê errado.
fonte
HTTP é um protocolo padrão, usado pela maioria dos sites para manipular as informações pela web. Seu site está sendo executado em HTTPS sem nenhuma mensagem de erro, significa que seu certificado foi instalado corretamente. Você deve migrar seu site inteiro de HTTP para HTTPS.
Aprenda a mover o HTTP para HTTPS para WordPress
fonte