7

我可以在 .htaccess 中使用 x 机器人“noindex,follow”特定页面吗?

我找到了一些关于 noindexing 类型文件的说明,但是我找不到 noindex 单个页面的说明,而且我到目前为止所尝试的方法都没有奏效。

这是我正在寻找 noindex 的页面:

http://www.examplesite.com.au/index.php?route=news/headlines

这是我到目前为止所尝试的:

<FilesMatch "/index.php?route=news/headlines$">
 Header set X-Robots-Tag "noindex, follow"
</FilesMatch>

谢谢你的时间。

4

4 回答 4

13

从 .htaccess 文件中匹配请求参数似乎是不可能的。这是您可以匹配的列表:http ://httpd.apache.org/docs/2.2/sections.html

在您的脚本中执行此操作会容易得多。如果您在 PHP 上运行,请尝试:

header('X-Robots-Tag: noindex, follow');

您可以轻松地在 $_GET、REQUEST_URI 等上构建条件。

于 2012-11-22T12:35:59.733 回答
7
RewriteEngine on
RewriteBase /

#set env variable if url matches
RewriteCond %{QUERY_STRING} ^route=news/headlines$
RewriteRule ^index\.php$ - [env=NOINDEXFOLLOW:true]

#only sent header if env variable set
Header set X-Robots-Tag "noindex, follow" env=NOINDEXFOLLOW

FilesMatch 适用于(本地)文件,而不是 url。所以它会尝试只匹配 url 的 /index.php 部分。<location>会更合适,但据我从文档中可以看出,这里不允许使用查询字符串。所以我最终得到了上述解决方案(我真的很喜欢这个挑战)。虽然 php 是放置这个的更明显的地方,但这取决于你。

该解决方案当然需要 mod_rewrite 和 mod_headers。

于 2012-11-27T20:26:28.453 回答
0

请注意,您需要启用 mod_headers 模块才能设置标题。

尽管就像其他人所说的那样,使用 php 标签似乎更好。那不行吗?

于 2012-11-24T13:37:52.787 回答
0

根据谷歌的说法,语法会有点不同:

<Files ~ "\.pdf$">
  Header set X-Robots-Tag "noindex, nofollow"
</Files>

https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag

于 2012-11-27T12:55:00.193 回答