我的网站www.domain / privacy-policy /上有一个隐私政策页面,我想不用X机器人标签索引。我尝试了以下代码,但它与
不匹配# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
## Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^privacy-policy - [env=NOINDEXFOLLOW:true]
Header set X-Robots-Tag "noindex, follow" env=NOINDEXFOLLOW
</IfModule>
# END WordPress
为了清晰起见,已对问题进行了编辑,以包含完整的htaccess文件。
答案 0 :(得分:2)
www.domain/privacy-policy/
“privacy-policy”位于URL路径中,而不是您在指令中使用的查询字符串。请尝试使用以下内容,而不是.htaccess
文件的顶部:
RewriteEngine On
RewriteRule ^privacy-policy - [env=NOINDEXFOLLOW:true]
Header set X-Robots-Tag "noindex, follow" env=NOINDEXFOLLOW
但是,最好使用mod_setenvif而不是mod_rewrite来设置环境变量:
SetEnvIf Request_URI "^/privacy-policy" NOINDEXFOLLOW
UPDATE:由于您使用的是前端控制器(WordPress指令),因此设置环境变量的RewriteRule
指令需要在WP指令之前的.htaccess
文件的顶部。通过在WP指令之后定位该指令,它根本不会被处理。 (如果您愿意,SetEnvIf
和Header
指令可以稍后出现在文件中。)
但是,由于您正在使用前端控制器并将所有请求重写为index.php
,因此未在您看到的请求中设置NOINDEXFOLLOW
变量。重写到index.php
Apache后,将其更改为REDIRECT_NOINDEXFOLLOW
(REDIRECT_
前缀),这是您需要在Header
指令中检查的内容。所以,总结一下:
SetEnvIf Request_URI "^/privacy-policy" NOINDEXFOLLOW
Header set X-Robots-Tag "noindex, follow" env=REDIRECT_NOINDEXFOLLOW
(不太直观。)
如果您使用RewriteRule
指令来设置NOINDEXFOLLOW
环境变量,那么它必须出现在文件的开头。