要重定向mysite.com/category1
url,以下规则可以正常工作:
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]