蜘蛛使用哪个链接进行搜索列表,静态链接或RewriteRule网址?

时间:2013-03-14 18:51:15

标签: php apache .htaccess mod-rewrite url-rewriting

我是Apache重定向的新手但已经学会了如何处理由我的网站上的PHP生成的干净网址,这些网址运行良好。

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

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

我也看到过使用PT | passthrough标志,如下例所示:Apache.org - Redirecting and Remapping with mod_rewrite

这是我应该在我的情况下使用的东西吗?

非常感谢您对此主题的任何澄清。

我的.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]

2 个答案:

答案 0 :(得分:2)

  

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

由于此重写发生在您的服务器内部(除非您使用显式重定向) - 您的蜘蛛甚至如何知道这些内部URL ...?

蜘蛛会关注他们在网络上找到的链接 - 如果您的网页中只链接了example.com/Shoes/Running/Men,他们会在哪里找到其他版本?

无论如何,要确保列出“正确”的网址,请添加link元素和rel=canonical,并提供您想要在其中使用的网址。 http://en.wikipedia.org/wiki/Canonical_link_element

答案 1 :(得分:0)

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