这个E 标志用于LiteSpeed,而不是ENV 对于Apache。
你从哪里弄来的?这个LiteSpeed docs 似乎表明LiteSpeed在这方面与Apache相同,并且需要env=, 不E=, 在Header 指令,以便根据环境变量的存在有条件地设置HTTP响应标头。
在LiteSpeed服务器上进行了测试后,我可以确认情况确实如此。这似乎是你上述指令的问题所在。使用E= 似乎会导致标题被无条件设置,这似乎就是您所看到的。(LiteSpeed实际如何解释E=<var> 不清楚-可能只是“忽略”了它!?根据我的经验,LiteSpeed似乎只是“忽略”它不理解的指令/语法-不会生成任何错误,这使得调试很麻烦!)
旁白:在Apache上,当重写过程重新开始时,在WordPress将请求重写为index.php. 例如,在Apache上,您需要测试REDIRECT_NOINDEXNOFOLLOW, 而不是NOINDEXNOFOLLOW. 然而,LiteSpeed的情况似乎并非如此。
RewriteCond %{REQUEST_URI} ^(.*)?faq?(/)$ [NC]
RewriteRule ^faq - [E=NOINDEXNOFOLLOW]
 旁白:你的
RewriteCond 似乎没有必要(而且过于复杂)。以及
RewriteCond (
条件)和RewriteRule 指令在某种程度上存在冲突。。。您已完成RewriteCond 但是,不区分大小写RewriteRule 不是,因此当条件匹配时FaQ, 这个RewriteRule 仅匹配项faq (全部小写)。这个RewriteCond 匹配项fa (自尾随q 是可选的),但是RewriteRule 仅匹配项faq (自尾随q 此处不是可选的)。因此,上述内容可以写成一条指令:
RewriteRule ^faq/$ - [E=NOINDEXNOFOLLOW]
 注意:请注意,在使用mod\\u rewrite设置环境变量时,如果没有指定的值,则会将其设置为空字符串。(这与mod\\u env和mod\\u setenif不同,后者会将变量设置为1.) 实际上,这不会导致Header 指令。然而,如果您只是基于请求的URL设置一个env var,那么我将使用SetEnvIf (mod\\u setenif)而不是mod\\u rewrite。例如:
SetEnvIf Request_URI ^/faq/$ NOINDEXNOFOLLOW
 请注意,这会将变量设置为1, 而不是空字符串。总结
您应该在LiteSpeed上使用以下选项:SetEnvIf Request_URI ^/faq/$ NOINDEXNOFOLLOW
Header set X-Robots-Tag "noindex, nofollow" env=NOINDEXNOFOLLOW
 在Apache上,您需要修改Header 测试的指令REDIRECT_NOINDEXNOFOLLOW 相反(如上所述)。例如:SetEnvIf Request_URI ^/faq/$ NOINDEXNOFOLLOW
Header set X-Robots-Tag "noindex, nofollow" env=REDIRECT_NOINDEXNOFOLLOW