【发布时间】:2019-05-08 20:49:21
【问题描述】:
我需要为我们的 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 等中。
【问题讨论】:
-
尝试使用
/sitemap\.xml/i而不是m#^/sitemap\.xml$#i。 -
谢谢@revo。那没有用,但我开始怀疑这与应用程序流的关系比我最初想象的要多。我很确定
REQUEST_URI在 .htaccess 中解析为 index.php。