Php 爬行器将使用哪个链接来搜索列表,静态链接还是重写规则url?

Php 爬行器将使用哪个链接来搜索列表,静态链接还是重写规则url?,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我是Apache redirectives的新手,但已经学会了如何处理PHP在我的站点上生成的干净URL,这些URL工作得非常好 我一直在研究这个问题,似乎找不到一个简单、直接的答案 我的问题是爬虫/蜘蛛/机器人会使用php在我的网站上显示的链接:example.com\Shoes\Running\Men还是会使用RewriteRule url:example.com\subsubcat_lookup.php?c=$1&s=$2&ss=$3作为最终显示在搜索引擎中的链接?(请参见下面的my.ht

我是Apache redirectives的新手,但已经学会了如何处理PHP在我的站点上生成的干净URL,这些URL工作得非常好

我一直在研究这个问题,似乎找不到一个简单、直接的答案

我的问题是爬虫/蜘蛛/机器人会使用php在我的网站上显示的链接:example.com\Shoes\Running\Men还是会使用RewriteRule url:example.com\subsubcat_lookup.php?c=$1&s=$2&ss=$3作为最终显示在搜索引擎中的链接?(请参见下面的my.htaccess)

我还看到了PT | passthrough标志的使用,如以下示例所示:

这是我应该在我的案件中使用的东西吗

非常感谢您对这个问题的任何澄清

我的.htaccess文件:

RewriteEngine on

# do not do anything if already existing file, symbolic link or directory
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]

# redirect clean url (/category) for processing
RewriteRule ^([^/]+)$ ./cat_lookup.php?c=$1 [L,B]
RewriteRule ^([^/]+)/$ ./cat_lookup.php?c=$1 [L,B]

# redirect clean url (/category/subcategory) for processing
RewriteRule ^([^/]+)/([^/]+)$ ./subcat_lookup.php?c=$1&s=$2 [L,B]
RewriteRule ^([^/]+)/([^/]+)/$ ./subcat_lookup.php?c=$1&s=$2 [L,B]

# redirect clean url (/category/subcategory/subsubcategory) for processing
RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ ./subsubcat_lookup.php?c=$1&s=$2&ss=$3 [L,B]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ ./subsubcat_lookup.php?c=$1&s=$2&ss=$3 [L,B]

这取决于爬虫程序的实现。例如,我可以编写一个爬虫程序来存储原始URL(不是.htaccess使用重写提供的URL),然后未清理的URL将存储在我的数据库中,否则将存储干净的URL。据我所知,像谷歌等爬虫程序存储干净(重写)的URL。您可以尝试使用ApacheNutch查看大多数爬虫的默认行为

我的问题是爬虫/蜘蛛/机器人会使用php在我的网站上显示的链接:example.com\Shoes\Running\Men还是会使用RewriteRule url:example.com\subsubcat_lookup.php?c=$1&s=$2&ss=$3作为最终显示在搜索引擎中的链接

由于这种重写是在服务器内部进行的(除非您使用显式重定向)——您是如何知道这些内部URL的

蜘蛛会跟随他们在网上找到的链接——如果你的页面中只链接了example.com/Shoes/Running/Men,他们会在哪里找到其他版本


无论如何,要确保列出“正确”的URL,请使用
rel=canonical
添加一个
link
元素,并给出要在其中使用的URL

所以你是说在我上面的场景中,谷歌最终会在搜索结果中显示的链接是example.com\subsubcat_lookup.php?c=$1&s=$2&ss=$3,而不是example.com\Shoes\Running\men像谷歌这样成熟的爬虫不会存储第二个example.com\Shoes\Running\men。但是也有一些爬虫程序可以存储其他链接。取决于实施情况。感谢提供信息。我不确定您是否查看了上面的.htaccess,但example.com\shoes\running\men实际上是第一个链接(在站点上),重写的链接(example.com\subsubcat_lookup.php?c=$1&s=$2&ss=$3)是第二个进行实际处理的链接。我将在rel=canonical上阅读,但我不知道这一点。“其他”版本(example.com\subsubcat_lookup.php?c=$1&s=$2&ss=$3)的唯一位置在my.htaccess中,如上所示,但不清楚爬行器在使用不带R标志的重写规则时是否曾看到或知道“其他”URL的存在。非常感谢。