重写AJAX Crawling的规则

时间:2014-02-27 06:33:18

标签: .htaccess mod-rewrite seo

要重定向mysite.com/category1网址,以下规则可以正常运行:

RewriteRule ^category1([^?]*) index.php?route=category&path=1 [L,NC]

对于AJAX抓取,我需要使用#!哈希片段。因此,新网址将变为mysite.com/category1#!。但是,#!由Google自动转换为_escaped_fragment_。

因此,对于抓取,Google会使用以下网址提取我的服务器:

mysite.com/index.php?_escaped_fragment_=category1 

以下规则:

RewriteCond %{QUERY_STRING} ^escaped_fragment_=(category1)$ 
RewriteRule ^$ index.php?route=category&path=1&%1 [R=301,NC,QSA,L]

首次成功将上述Google抓取的网址重定向到以下网址:

mysite.com/index.php?route=category&path=1&_escaped_fragment_=category1 

然后,不需要的循环重定向到:

mysite.com/category1 

简单地说,我需要重新编写规则来重定向:

mysite.com/index.php?_escaped_fragment_=category1

为:

mysite.com/index.php?route=category&path=1&_escaped_fragment_=category1

请帮助我写下我应该写的规则。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下规则:

RewriteRule ^category([0-9]+)/?$ index.php?route=category&path=$1 [L,NC,QSA]