我需要为我们的sitemap.xml页面设置一个noindex标头。我不能使用<meta>
标签,所以另一个选项似乎涉及通过Apache设置标头。
此外,我不能使用<Files>
指令,因为我们的sitemap.xml是由PHP生成的,而不是文件。
我已经尝试过,但是我不认为RewriteCond
与Header
一起工作,因为这会影响所有页面:
RewriteCond %{REQUEST_URI} ^/sitemap\.xml$ [NC]
Header set X-Robots-Tag "noindex"
这不会产生任何作用:
<If "%{REQUEST_URI} =~ /^sitemap.xml$/">
Header set X-Robots-Tag "noindex"
</If>
似乎最好的选择是使用ap_expr,但这也不起作用:
Header set X-Robots-Tag "noindex" "expr=%{REQUEST_URI} =~ m#^/sitemap\.xml$#i"
有人可以发现正则表达式问题吗?我是否误解了应该使用其中一种或多种技术?
对于它的价值,我们更喜欢对.htaccess文件进行版本控制,因此不要将诸如此类的配置项放在httpd.conf或vhost等中。
答案 0 :(得分:0)
<If "%{REQUEST_URI} == '/sitemap.xml'">
Header set X-Robots-Tag "noindex"
</If>
或
<If "%{THE_REQUEST} =~ m#\s/sitemap\.xml# ">
Header set X-Robots-Tag "noindex"
</If>