要重定向mysite.com/category1url,以下规则可以正常工作:

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

对于ajax爬行,我需要使用!散列片段。因此,新的url将变成mysite.com/category1#!。但是,啊!由谷歌自动转换为转义片段。
因此,对于爬网,google使用以下url获取我的服务器:
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 fetched url成功重定向到以下url:
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

请帮我写些什么规则。

最佳答案

您可以尝试以下规则:

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

07-24 16:56