Les directives ci-dessous sont destinées à appliquer l'en-tête X-Robots-Tag
_ noindex
et nofollow
à une seule page.
Les directives ci-dessous sont appliquées avant le WordPress Block, mais il semble aboutir à toutes les pages étant définies avec noindex
et nofollow
RewriteCond %{REQUEST_URI} ^(.*)?faq?(/)$ [NC]
RewriteRule ^faq - [E=NOINDEXNOFOLLOW]
Header set X-Robots-Tag "noindex, nofollow" E=NOINDEXNOFOLLOW
Le drapeau E
est utilisé pour LIPETSEED par opposition à ENV
pour Apache.
Le drapeau
E
est utilisé pour LIPETSEEE plutôt que par opposition àENV
pour Apache.
D'où avez-vous obtenu cela? Les LITESPEED DOCS semblent montrer que LIPETSEEEEEEE est identique à Apache à cet égard et nécessitent env=
, ne pas E=
, sur la directive Header
afin de définir conditionnellement l'en-tête de réponse HTTP en fonction de la présence d'une variable d'environnement.
Ayant testé cela moi-même sur un serveur LIPETSEED, je peux confirmer que cela semble être le cas. Et cela semblerait être le problème de votre directive ci-dessus. En utilisant E=
semble résulter de l'en-tête défini inconditionnellement , qui semble être ce que vous voyez. (Comment Espeed interprète réellement E=<var>
n'est pas clair - il peut simplement "ignorer" ça !? Dans mon expérience, LiteSpeed semble simplement "ignorer" directives/syntaxe qu'il ne comprend pas - aucune erreur n'est générée, ce qui fait du débogage gênant!)
Mis à côté: sur Apache Vous auriez également des problèmes avec la manière dont les variables d'environnement sont renommées lorsque le processus de réécriture commence sur - après WordPress = réécrire la demande à index.php
. Par exemple, sur Apache, vous devez tester pour REDIRECT_NOINDEXNOFOLLOW
, par opposition à NOINDEXNOFOLLOW
. Cependant, cela ne semble pas être le cas avec LIVESEED.
RewriteCond %{REQUEST_URI} ^(.*)?faq?(/)$ [NC] RewriteRule ^faq - [E=NOINDEXNOFOLLOW]
Mis à côté: votre RewriteCond
semble être inutile (et trop complexe). Et le RewriteCond
( condition ) et RewriteRule
directives conflit Dans une certaine mesure ... vous avez fait le casse-insensible RewriteCond
, cependant, le RewriteRule
n'est pas, donc tandis que le Condition correspondrait à FaQ
, le RewriteRule
ne correspond que faq
(tous minuscules). Le RewriteCond
correspond à fa
(car la fuite q
est facultative), cependant, le RewriteRule
correspond uniquement faq
(depuis la fuite q
n'est pas facultatif ici).
Donc, ce qui précède pourrait être écrit comme une directive unique:
RewriteRule ^faq/$ - [E=NOINDEXNOFOLLOW]
NB: Notez que lors de la définition d'une variable d'environnement avec mod_rewrite, sans valeur indiquée, elle est définie sur un vide . (Ceci est différent de mod_env et mod_setenvif qui définirait la variable sur 1
.) Comme cela se produit, cela ne pose aucun problème à la directive Header
.
Toutefois, si vous définissez simplement un VaR env Var en fonction de l'URL demandée, j'utiliserais SetEnvIf
(mod_setenvif) au lieu de mod_rewrite. Par exemple:
SetEnvIf Request_URI ^/faq/$ NOINDEXNOFOLLOW
Notez que cela définit la variable à 1
, au lieu d'une chaîne vide.
Vous devez utiliser ce qui suit sur LIVESEED à la place:
SetEnvIf Request_URI ^/faq/$ NOINDEXNOFOLLOW
Header set X-Robots-Tag "noindex, nofollow" env=NOINDEXNOFOLLOW
Sur Apache, vous devez modifier la directive Header
pour tester le REDIRECT_NOINDEXNOFOLLOW
au lieu (comme mentionné ci-dessus). Par exemple:
SetEnvIf Request_URI ^/faq/$ NOINDEXNOFOLLOW
Header set X-Robots-Tag "noindex, nofollow" env=REDIRECT_NOINDEXNOFOLLOW