当爬网程序读取 robots.txt 文件的 User-Agent 行时,它是否尝试将其与自己的 User-Agent 完全匹配,还是尝试将其作为其 User-Agent 的子字符串进行匹配?
我读过的所有内容都没有明确回答这个问题。根据另一个 StackOverflow 线程,这是完全匹配的。
然而,RFC 草案让我相信这是一个子字符串匹配。例如,User-Agent: Google将匹配“Googlebot”和“Googlebot-News”。以下是 RFC 的相关引用:
机器人必须遵守
/robots.txt包含 User-Agent 行的第一条记录,该行的值包含机器人的名称标记作为子字符串。
此外,在Googlebot 文档的“用户代理的优先顺序”部分中,它解释了 Google 图片的用户代理“ Googlebot-Image/1.0”与User-Agent: googlebot.
我希望这里能有任何澄清,答案可能比我的问题更复杂。例如,Eugene Kalinin 的节点机器人模块提到在第 29 行拆分用户代理以获取“名称令牌”并与之匹配。如果这是真的,那么Googlebot 的用户代理“ Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”将不匹配User-Agent: Googlebot。
由于某种原因,我的XAMPP服务器正在缓冲PHP的输出。我希望它随其吐出。任何人有什么想法我需要更改以实现此设置?
我已经浏览了Apache指南以启用mod_info.
根据文件:
要配置mod_info,请将以下内容添加到您的httpd.conf文件中.
<Location /server-info>
SetHandler server-info
</Location>
Run Code Online (Sandbox Code Playgroud)您可能希望在<Location>指令中使用mod_access 来限制对服务器配置信息的访问:
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from yourcompany.com
</Location>
Run Code Online (Sandbox Code Playgroud)配置完成后,通过访问获取服务器信息
http://your.host.dom/server-info
Run Code Online (Sandbox Code Playgroud)在我的情况下,此链接不提供任何信息.有什么我需要安装为mod_info.c或什么?有什么我需要作为AddModule或什么?
我有一组 URL,我正在为其进行 301 重定向(使用 Nginx,我认为它的 Regex 引擎使用 PCRE)。这是所需内容的简化版本:
/old/
/new//old/1234/
/new/1234//old/1234/foo/
/new/1234/foo//old/1234/bar/
/new/1234/bar//old/1234/expired/
/new/1234/即对此的过度简化可能是说/old/(.*)重定向到/new/$1,除非 url 的最后一部分是/[0-9]+/expired/,在这种情况下它只会上升一个级别。(除非我真的需要使用foo,bar expired和1234与 URL 匹配的部分使其更具体)。
如果可能,我想在一个正则表达式中涵盖所有这些,而不是为每个变体设置多个规则。
所以到目前为止我的正则表达式Nginx.conf是这样的:
location ~* ^/old/(([0-9]+/)expired/)?|([0-9]+/(foo|bar/)?)?$ {
return 301 /new/$1;
}
Run Code Online (Sandbox Code Playgroud)
显然这是不对的。总之:
/[0-9]+/如果URL结尾部分/expired/。/[0-9]+/foo/或/[0-9]+/bar/部分。/[0-9]+/如果这就是它的结尾,那只是一部分。/old/那么只需重定向到/new/apache ×1
apache2 ×1
apache2.2 ×1
nginx ×1
php ×1
regex ×1
robots.txt ×1
user-agent ×1
web-crawler ×1