Em nossa página, usamos o módulo Metatag para mostrar uma metatag canônica. Na configuração, usamos o [current-page:url:absolute]
token. Isso funciona bem, mas o problema é que, se a página é acessada por HTTP ou HTTPS, esse protocolo é usado na URL canônica.
Para fins de SEO, queremos que o URL canônico seja o mesmo e use HTTP para ambos os protocolos.
Como podemos conseguir isso?
.htaccess
ou configuração do Apache. Problema resolvido.Respostas:
Drupal 7
Você pode implementar
hook_html_head_alter()
para alterar tags de cabeçalho; o seguinte não foi testado, mas deve fazer o truque:fonte
Com o módulo metatag, você pode usar o token [página atual: url: parente] em vez do token [página atual: url: absoluto].
para que sua tag canônica se torne algo como: http: //www.mywebsite [página atual: url: relativa]
fonte
Drupal 8
Para nós, você precisa usar,
hook_ENTITY_TYPE_view_alter
pois é o local de onde eles foram adicionados inicialmenteNodeViewController::view()
.E deixe-me observar que você provavelmente está melhor redirecionando todo o tráfego de entrada para SSL por padrão: como simplesmente tornar o site inteiro HTTPS?
Acabei de descobrir que, no final, encontraremos todas as tags de cabeçalho
hook_preprocess_html
na$variables['page']['#attached']
matriz a serem alteradas.fonte
Me chame de maluca e me corrija se eu estiver errado, mas você não pode simplesmente codificar a URL com o HTTP?
Tenho certeza de que falta algo, mas se você soltar o URL completo em vez de usar o token, você terminará com esse URL específico como o canônico para todas as variações da página que o Drupal criar.
A ressalva é que ele cria um pesadelo de atualização, pois você deve se lembrar de alterar o canônico se o alias da página mudar.
fonte