Ne pas rendre accessible certaines URL système

Posté le: dim 28/10/2018 - 15:30 Par: rcowebdev
denied

Pour ma part, je tiens à contrôler mes URL et si une n'est pas réécrite, je préfère envoyer le visiteur sur une 404.

Par exemple, l'article que je suis en train d'écrire est le noeud 44 et donc nativement, une URL système lui est attribuée

/node/44

Je ne souhaite pas que cette dernière soit accessible ni même avoir une redirection mais ne rendre accessible mon article que par son URL réécrite

/CMS/drupal8/redirection-404-url-systeme

On retrouve la même problématique avec les termes de taxo.

Un moyen simple est de modifier le fichier .htaccess à la racine du site

  # Disallows some url
  RedirectMatch 301 ^/node$ /404-not-found
  RedirectMatch 301 ^/node/[0-9]+$ /404-not-found
  RedirectMatch 301 ^/taxonomy/term/[0-9]+$ /404-not-found  
Attention toutefois, l'URL /404-not-found ne doit pas correspondre à la page 404 configurée en BO sinon le status HTTP sera 301 puis 200 et non 404, donc pour le suivi SEO ce n'est pas top :/

 

Ainsi node/44 ou taxonomy/term/1 ne seront plus disponibles.

Mots clés
Drupal 8
SEO