Sur notre page, nous utilisons le module Metatag pour afficher une balise META canonique. Dans la configuration, nous utilisons le [current-page:url:absolute]
jeton. Cela fonctionne bien, mais le problème est que, que la page soit accessible par HTTP ou HTTPS, ce protocole est utilisé dans l'URL canonique.
À des fins de référencement, nous voulons que l'URL canonique soit la même et utilisons HTTP pour les deux protocoles.
Comment pouvons-nous y parvenir?
.htaccess
ou config Apache. Problème résolu.Réponses:
Drupal 7
Vous pouvez implémenter
hook_html_head_alter()
pour changer les balises de tête; ce qui suit n'est pas testé mais devrait faire l'affaire:la source
Avec le module de métabalises, vous pouvez utiliser le jeton [current-page: url: relative] au lieu du jeton [current-page: url: absolue].
de sorte que votre balise canonique deviendrait quelque chose comme: http: //www.mywebsite [current-page: url: relative]
la source
Drupal 8
Pour les nœuds, vous devez utiliser
hook_ENTITY_TYPE_view_alter
car c'est l'endroit où ils ont été ajoutés initialementNodeViewController::view()
.Et permettez-moi de noter que vous êtes probablement mieux loti en redirigeant simplement tout votre trafic entrant vers SSL par défaut: comment rendre simplement l'ensemble du site HTTPS?
Je viens de découvrir qu'à la fin, nous trouverons toutes les balises head
hook_preprocess_html
dans le$variables['page']['#attached']
tableau à modifier.la source
Appelez-moi fou et corrigez-moi si je me trompe, mais ne pouvez-vous pas coder en dur l'URL avec le HTTP?
Je suis sûr qu'il manque quelque chose, mais si vous déposez l'URL complète au lieu d'utiliser le jeton, vous vous retrouverez avec cette URL particulière comme canonique pour chaque variation de la page créée par Drupal.
La mise en garde est que cela crée un cauchemar de mise à jour car vous devez vous rappeler de changer le canonique si l'alias de la page change un jour.
la source