以下是我的.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
被编入索引
任何帮助都会很棒。
答案 0 :(得分:0)
如果您想阻止http://mywebsite.com/123
,但允许http://mywebsite.com/123index.php
,那么您需要Allow
和Disallow
:
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会尊重这个通配符。许多其他爬虫不会。