在robots.txt中阻止RewriteRule

时间:2011-10-10 19:14:44

标签: apache robots.txt

以下是我的.htaccess文件中的RewriteRule示例:

RewriteRule ^ABC$ index.php?partner_id=123&utm_source=partner&utm_medium=link&utm_campaign=ABC [L]

因此http://mywebsite.com/123会指向index.php?partner_id=123&utm_source=partner&utm_medium=link&utm_campaign=ABC

Index.php文件是一个非常重要的页面,可以被搜索引擎正确编入索引,但我希望阻止http://mywebsite.com/123被编入索引而不会影响http://mywebsite.com/http://mywebsite.com/index.php被编入索引

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

如果您想阻止http://mywebsite.com/123,但允许http://mywebsite.com/123index.php,那么您需要AllowDisallow

User-agent: *
Allow: /123index.php
Disallow: /123

这将禁止任何以/123开头的内容,但明确允许/123index.php

标准robots.txt语法不允许您禁止使用特定网址。相反,它不允许以您指定的模式开头的URL。

Google和Bing(以及其他一些人)对标准语法有一些扩展。使用Google的$通配符支持,您可以写:

Disallow: /123$

这会阻止一个URL。其他抓取工具可能支持也可能不支持该语法。

回应评论时注意:

如果我理解正确,请在您发表评论后允许http://mywebsite.com/index.php,但阻止http://mywebsite.com/123。如果您知道没有其他资源以/123开头,那么您可以写:

Disallow: /123

这将阻止任何以/123开头的内容。例如,/123/file.html/123abc。如果/123开头并且您想要允许的其他资源,则您需要:

Disallow: /123$

但要明白Google和也许 Bing会尊重这个通配符。许多其他爬虫不会。