为何robots.txt欲屏蔽子文件夹却误挡python目录下部分文件?
问题原因与解决方案
规则错误原因
你的robots.txt规则逻辑存在偏差:
Allow: /python/$仅匹配**/python/目录本身**(即https://www.plus2net.com/python/这个URL),而你要保留的文件URL(比如/python/string-rjust.php)结尾并非/python/$,因此不会被这条允许规则覆盖。Disallow: /python/会匹配所有包含/python/的URL,包括你要保留的直接文件路径,所以这些文件会被这条禁止规则屏蔽。
正确规则写法
要实现「仅索引/python/目录下的直接文件,屏蔽子层级内容」,可以调整为以下规则:
# 允许/python/目录下的所有直接文件(匹配/python/后直接跟文件名的路径) Allow: /python/[^/]+$ # 屏蔽/python/下的子层级目录及内容 Disallow: /python/*/
或者针对你需要保留的文件类型做精准匹配:
# 允许/python/目录下的php和csv文件 Allow: /python/*.php Allow: /python/*.csv # 屏蔽/python/下的子层级目录及内容 Disallow: /python/*/
说明:
Allow: /python/[^/]+$中的[^/]+表示匹配任意不含斜杠的字符(即文件名),$表示URL结尾,刚好对应/python/目录下的直接文件。Disallow: /python/*/匹配/python/后包含至少一个斜杠的路径,也就是子层级目录下的内容,会被正确屏蔽。
内容的提问来源于stack exchange,提问作者Mamata Mohapatra
相关产品推荐
相关产品推荐

