Aprenda a migrar wordpress para https, usando o wp-cli, uma interface de linha de comandos para o wordpress.
O wp-cli usa um recurso chamado search-replace que procura no banco de dados por “http://” e substitui por “https://” com apenas uma linha de comando.
Em alternativa, coloquei como fazer a migração utilizando plugins ou phpmyadmin para alterar o bando de dados.
Fazer backup antes
Lembre-se de que sempre é importante fazer um backup do seu banco de dados antes de fazer mudanças significativas no site WordPress, para que você possa restaurar o site caso algo dê errado.
wp db export backup.sql
Comando do wp-cli
Execute o comando abaixo para fazer a busca e substituição do HTTP pelo HTTPS:
wp search-replace 'http://seusite.com' 'https://seusite.com' --skip-columns=guid
O parâmetro --skip-columns=guid é usado para evitar substituir valores na coluna “guid” do banco de dados, que é usada para gerar links permanentes (permalinks) para posts e páginas.
Exportar database com as mudanças:
wp search-replace 'http://seusite.com' 'https://seusite.com' --skip-columns=guid --export=database.sql
Ao adicionar --export=database.sql no final do comando acima, vai ser exportada uma base de dados nova com as mudanças, perfeita para fazer a migração de servidor.
Usar plugins em alternativa
Alguns plugins também fazem search and replace no banco de dados e funcionam para migrar para https:
Usar phpMyAdmin como alternativa
As mudanças do bando de dados podem ser feitas diretamente através de uma ferramenta como phpmyadmin ou adminer.
Esses são os endereços essenciais:
update wp_posts set guid = replace(guid,'http://seusite.com','https://seusite.com');
update wp_posts set post_content = replace(post_content,'http://seusite.com','https://seusite.com');
update wp_postmeta set meta_value = replace(meta_value,'http://seusite.com','https://seusite.com');
update wp_options set option_value = replace(option_value,'http://seusite.com','https://seusite.com');
Forçar redirecionamento
Além disso, após a migração para HTTPS, é importante configurar corretamente o certificado SSL e redirecionar todas as páginas HTTP para HTTPS para garantir a segurança e a integridade do seu site.
Adicione na header do wordpress o seguinte código:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
Utilize o plugin Code Snippets e adicione esse código:
add_action('wp_head', 'upgrade-insecure-requests', 1);
function upgrade-insecure-requests() { ?>
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<?php }
Nginx:
server {
listen 80;
server_name seusite.com www.seusite.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name seusite.com www.seusite.com;
root /var/www/seusite.com/htdocs;
ssl_certificate /etc/letsencrypt/live/seusite.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/live/seusite.com/seusite.com.key;
...
outras configurações
...
}
Apache:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Forçar SSL no wordpress wp-config.php:
/* SSL */
define( 'FORCE_SSL_LOGIN', true );
define( 'FORCE_SSL_ADMIN', true );
/* Custom WordPress URL. */
define( 'WP_SITEURL', 'https://seusite.com' );
define( 'WP_HOME', 'https://seusite.com' );
Como usar o WP-CLI
Comandos para instalar o WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
Agora seu servidor pode executar o wp-cli em qualquer diretório, mas para utilizar o wp-cli é preciso estar dentro do diretório raiz do wordpress.
