En nuestra página usamos el módulo Metatag para mostrar una metaetiqueta canónica. En la configuración usamos el [current-page:url:absolute]
token. Esto funciona bien, pero el problema es que si se accede a la página mediante HTTP o HTTPS, este protocolo se usa en la URL canónica.
Para fines de SEO, queremos que la URL canónica sea la misma y usemos HTTP para ambos protocolos.
¿Cómo podemos lograr esto?
.htaccess
configuración de Apache. Problema resuelto.Respuestas:
Drupal 7
Puede implementar
hook_html_head_alter()
para cambiar las etiquetas principales; lo siguiente no ha sido probado pero debería ser el truco:fuente
Con el módulo metatag puede usar el token [current-page: url: relative] en lugar del token [current-page: url: absolute].
para que su etiqueta canónica se convierta en algo como: http: //www.mywebsite [current-page: url: relative]
fuente
Drupal 8
Para los nodos, debe usar
hook_ENTITY_TYPE_view_alter
ya que ese es el lugar desde donde se agregaron inicialmenteNodeViewController::view()
.Y permítanme señalar que probablemente estén mejor simplemente redirigiendo todo su tráfico entrante a SSL de forma predeterminada: ¿Cómo hacer que todo el sitio sea HTTPS?
Me acabo de enterar de que, al final, encontraremos todas las etiquetas de cabecera
hook_preprocess_html
en la$variables['page']['#attached']
matriz para modificar.fuente
Llámame loco y corrígeme si me equivoco, pero ¿no puedes simplemente codificar la URL con el HTTP?
Estoy seguro de que me falta algo, pero si coloca la URL completa en lugar de usar el token, terminará con esa URL en particular como canónica para cada variación de la página que crea Drupal.
La advertencia es que crea una pesadilla de actualización, ya que debe recordar cambiar el canónico si el alias de la página cambia alguna vez.
fuente