2 votes

HTACCESS : Comment ajouter le X-Robots-Tag à un répertoire spécifique ?

J'ai essayé de chercher cette réponse ici ainsi que sur Stackoverflow et je n'ai pas trouvé de réponse applicable.

J'essaie d'ajouter la balise X-Robots 'noindex' à un répertoire spécifique de mon site Web via HTACCESS.

Objectif : Je veux empêcher toutes les pages de ce répertoire d'être indexées par les moteurs de recherche.

Mon installation : PHP version 5.6.40 / Apache / Linux

Clarification : Il ne s'agit pas d'un répertoire physique. Il s'agit d'un répertoire virtuel qui existe via la réécriture d'URL.

Exemple d'URL : http://www.example.com/newsletters/

Exemple d'URL : http://www.example.com/newsletters/Spring.html

0 votes

"Impossible de trouver une réponse applicable" - quel était le problème avec les réponses que vous avez trouvées ? Quelle version d'Apache utilisez-vous ?

0 votes

Apache 2 je crois. J'ai essayé d'utiliser phpinfo() pour le savoir, mais il m'a juste donné la version générale 'Apache'.

0 votes

Toutes les réponses que j'ai trouvées s'appliquaient à des répertoires physiques, et non à des répertoires virtuels qui sont créés via des réécritures d'url.

4voto

MrWhite Points 11269

Créer un .htaccess dans ce répertoire avec la directive mod_headers suivante :

Header set X-Robots-Tag "noindex"

UPDATE#1 : S'il s'agissait d'un répertoire "virtuel", en quoi l'approche serait-elle différente ?

Dans ce cas, utilisez l'option .htaccess à la racine du document et définissez une variable d'environnement (par exemple, le fichier NOINDEX ) lorsque le chemin d'accès à l'URL requis est demandé et définir l'attribut X-Robots-Tag conditionnellement en fonction de la présence ou non de la variable env.

Par exemple :

SetEnvIf Request_URI ^/virtualdirectory/ NOINDEX
Header set X-Robots-Tag "noindex" ENV=NOINDEX

SetEnvIf fait partie de mod_setenvif .

El ENV= à l'argument Header vous permet de définir cet en-tête uniquement si la variable env indiquée est définie.

UPDATE#2 : Apache 2 je crois.

Si vous êtes sous Apache 2.4+ (par opposition à Apache 2.2), vous pouvez utiliser un fichier Expression Apache au lieu de devoir définir une variable d'environnement. Par exemple :

<If "%{REQUEST_URI} =~ m#^/virtualdirectory/#">
Header set X-Robots-Tag "noindex"
</If>

0 votes

Comme ça ? <IfModule mod_headers.c> Header set X-Robots-Tag "noindex" </IfModule>

1 votes

Pas besoin de la <IfModule> l'emballage. Exactement comme je l'ai écrit dans ma réponse.

0 votes

S'il s'agissait d'un répertoire "virtuel", en quoi l'approche serait-elle différente ?

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X