Ir diretamente para o conteúdo

Definições de cookies

Escolha que tipos de cookies permite. Pode alterar a sua escolha a qualquer momento em Definições de cookies, no fundo de cada página. Política de privacidade

Necessários

Sempre ativos

Necessários para iniciar sessão, manter o seu carrinho e memorizar as suas escolhas. Estão sempre ativos.

Que cookies?
  • weboke_sessie, weboke_klant, weboke_remember: a sua sessão e manter a sessão iniciada
  • weboke_basket: o seu carrinho
  • wkBtwIncl: mostrar preços com ou sem IVA
  • wok_cookies: a sua escolha de cookies, 12 meses

Mede que anúncio leva a uma visita ou encomenda, para não pagarmos por anúncios que não dão resultado.

Que cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), até 90 dias
  • OpenAI Ads, anúncios no ChatGPT
  • wok_aff: através de que parceiro chegou até nós (programa de afiliados), 60 dias

4,6

País e idioma

Cada país tem o seu próprio site, com os preços e o IVA desse país.

Ver

www, redirecionamento e conteúdo misto

Módulo 3: Endereço, https e utilizadores · Tempo de leitura: 9 minutos

Objetivo de aprendizagem: Depois desta lição, conseguirá escolher um endereço principal, redirecionar todas as variantes para esse endereço com um único redirecionamento e detetar e resolver conteúdo misto.

Conceitos-chave: endereço canónico, 301 e 308, cadeia de redirecionamentos, conteúdo misto (mixed content), pesquisar e substituir na base de dados, dados serializados

Quatro endereços, um site

O seu site pode ser acedido através de quatro endereços:

http://example.com
http://www.example.com
https://example.com
https://www.example.com

Para um visitante isso não faz diferença, mas para os motores de pesquisa são quatro endereços diferentes com o mesmo conteúdo. Também os cookies (como o seu cookie de início de sessão) aplicam-se por nome: quem inicia sessão em www não fica autenticado no domínio sem www. Por isso, escolha um endereço canónico (o endereço principal) e redirecione os outros três para lá.

A escolha é uma questão de preferência (lição 2.1). O importante é que o endereço principal seja igual em todo o lado: no DNS, no certificado, em Opções > Geral (lição 3.1) e nos redirecionamentos.

Redirecionar com um 301, num só passo

Um redirecionamento é uma resposta do servidor: "esta página está noutro sítio". O navegador vai então automaticamente para o novo endereço. O código indica o tipo de redirecionamento:

CódigoSignificadoUtilização
301Movido permanentementeA escolha habitual para http para https e para www para o domínio sem www (ou o contrário)
308Permanente, e o método (por exemplo, um envio de formulário) mantém-se igualTambém pode ser usado para este fim; os navegadores e motores de pesquisa tratam-no como 301
302 ou 307TemporárioApenas para algo realmente temporário, como uma página de manutenção

Um redirecionamento permanente indica aos motores de pesquisa que o novo endereço é o verdadeiro. Com um redirecionamento temporário, estes continuam a guardar o endereço antigo.

Preste também atenção à cadeia. Suponha que o seu endereço principal é https://example.com. Então pretende:

http://www.example.com   301  https://example.com/
http://example.com       301  https://example.com/
https://www.example.com  301  https://example.com/
https://example.com      200

Cada variante chega ao endereço principal num único passo. O que acontece frequentemente é:

http://www.example.com   301  https://www.example.com/
https://www.example.com  301  https://example.com/

Isto funciona, mas implica um passo extra (tempo de espera adicional, sobretudo em dispositivos móveis) e um aperto de mão TLS adicional. Pior ainda é um ciclo: o servidor web redireciona para https, o WordPress redireciona de volta para http porque os endereços nas opções ainda estão em http, e o navegador assinala "demasiados redirecionamentos". Nesse caso, duas configurações estão a entrar em conflito. Certifique-se de que apenas uma entidade redireciona para https (o servidor web ou o painel) e que os endereços no WordPress já estão definidos no endereço principal.

O WordPress também efetua os seus próprios redirecionamentos: se alguém solicitar https://www.example.com/contact/ enquanto o endereço do site é https://example.com, o WordPress redireciona para https://example.com/contact/. Isto só funciona se o pedido chegar ao WordPress, ou seja, se o servidor web também encaminhar o nome www para este site.

Conteúdo misto

Conteúdo misto (mixed content) é uma página https que carrega elementos através de http://: uma imagem, uma folha de estilos, um script, um tipo de letra ou um vídeo incorporado. O navegador considera isto inseguro, porque esses elementos podem ser alterados durante o percurso.

  • Scripts, folhas de estilos e iframes via http são bloqueados pelos navegadores. O seu site pode então parecer avariado ou uma funcionalidade pode não funcionar.
  • Imagens, áudio e vídeo via http são automaticamente tentados obter através de https pelos navegadores modernos; se isso não resultar, são bloqueados. O cadeado pode então mostrar um aviso.

De onde isto provém:

  1. Links antigos no seu conteúdo: um site que anteriormente estava em http tem em milhares de artigos <img src="http://example.com/wp-content/uploads/...">. O WordPress guarda esses links literalmente na base de dados.
  2. Configurações do tema ou de plugins com um endereço completo, por exemplo um logótipo ou fundo com http://.
  3. Elementos externos de outro site que só estão acessíveis via http. Estes devem ser substituídos ou removidos.
  4. Endereços em Opções > Geral que ainda estão em http (lição 3.1).

Como encontrar

Abra a página, prima F12 e veja o separador Consola. O navegador indica cada conteúdo misto com o endereço do elemento. Ou procure no código-fonte da página (Ctrl+U) por src="http:// e href="http://. Links para outros sites em texto normal (<a href="http://...">) não constituem conteúdo misto; trata-se de elementos que a página carrega.

Pesquisar e substituir, mas da forma correta

A solução para links antigos no seu conteúdo é substituir todos os http://example.com na base de dados por https://example.com. A tentação é usar uma instrução SQL como:

UPDATE wp_options SET option_value = REPLACE(option_value, 'http://example.com', 'https://example.com');

Não faça isso. Muitas configurações de temas, plugins e widgets estão guardadas de forma serializada. Isto tem o seguinte aspeto:

s:27:"http://example.com/logo.png";

O s:27 significa: segue-se um texto de 27 caracteres. Depois de uma substituição direta, o texto passa a ter 28 caracteres (adicionou-se um s), mas continua a indicar 27. O PHP já não consegue ler o valor e a configuração desaparece silenciosamente: um menu vazio, um logótipo desaparecido, widgets perdidos.

Utilize uma ferramenta que atualize esses comprimentos:

  • WP-CLI: primeiro verificar, depois executar.
wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://example.com' 'https://example.com' --all-tables

Com --dry-run vê quantas substituições haveria por tabela, sem alterar nada.

  • Um plugin de pesquisar e substituir que suporte dados serializados (existem vários na pasta de plugins de wordpress.org). Remova o plugin depois de o utilizar.

Faça sempre primeiro uma cópia de segurança (lição 8.1). Nunca substitua também algo como example.com sem o http:// à frente: isso afeta também endereços de e-mail e outros textos.

Na prática: o aspeto num painel

Como exemplo, utilizamos o DirectAdmin. Outros painéis têm um interruptor semelhante para "sempre https".

  1. Ative Forçar o uso de SSL (https) nas opções do domínio (lição 3.1).
  2. Escolha, nas configurações do domínio, se o www deve ir para o domínio sem www ou o contrário (no DirectAdmin nas opções do domínio; caso contrário, através de um redirecionamento via Config. redirecionamentos do site ou .htaccess).
  3. Verifique a cadeia com o comando abaixo ou com as ferramentas de desenvolvimento do seu navegador (separador Rede, opção "Preservar registo").

Resumo

  • Escolha um endereço canónico e faça com que as outras três variantes cheguem lá com um 301 (ou 308), num único passo.
  • Deixe apenas uma entidade redirecionar para https; caso contrário, obtém um ciclo.
  • Conteúdo misto é uma página https que carrega elementos via http; a consola do navegador mostra quais.
  • Links antigos na base de dados devem ser substituídos com wp search-replace ou um plugin que compreenda dados serializados, nunca com um REPLACE SQL direto.
  • Faça sempre primeiro uma cópia de segurança e primeiro uma ronda de teste.

Questionário

1. Que redirecionamento utiliza para enviar http de forma permanente para https?



2. Depois de ativar "sempre https", o navegador assinala "demasiados redirecionamentos". Qual é a causa mais provável?



3. Porque é que UPDATE ... REPLACE(...) em SQL é perigoso para converter endereços?



4. Que elemento numa página https o navegador bloqueia sempre se for carregado via http?



Exercício

Exercício A3.2: Um endereço principal e nenhum conteúdo misto. Introduza o seu domínio. O programa abre as quatro variantes (http e https, com e sem www) e segue os redirecionamentos. O resultado ideal é: todas as quatro chegam ao mesmo endereço com https, com no máximo um redirecionamento por variante e apenas com códigos permanentes (301 ou 308). Depois, o programa lê o HTML da página inicial e procura scripts, folhas de estilos, imagens, iframes e tipos de letra carregados via http://.

Exercício A3.2: Um endereço principal e nenhum conteúdo misto


O que preenche e o que encontramos não ficam guardados. O seu navegador memoriza as suas respostas e se concluiu o exercício com sucesso. Se tiver sessão iniciada, guardamos apenas que concluiu o exercício (quase) com sucesso em Os meus cursos; aí também o pode eliminar.

Leitura adicional

Estes artigos descrevem os passos nos painéis da WebOké; noutros painéis funcionam de forma semelhante.

Um momento…

Configurar os seus domínios

Para cada domínio, defina os servidores de nomes, a ligação ao seu alojamento e quem fica como titular.

A carregar os seus domínios…