在.htaccess中为_escaped_fragment_创建RewriteRule拆分查询字符串

时间:2015-02-14 02:57:22

标签: apache .htaccess mod-rewrite

我正在将请求重定向到google hashbang的快照目录。

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/$
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$
RewriteRule ^(.*)$ /snapshots/%1? [NC,L]

所以:http://site/?_escaped_fragment_=/detail/10
到这里:site / snapshots / detail / 10

但是我想忽略第二个参数 http://site/?_escaped_fragment_=/detail/10/12-12-2014

应该重定向到同一个网址 站点/快照/细节/ 10

知道我应该如何重写规则吗?

1 个答案:

答案 0 :(得分:0)

尝试更改此行:

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?([^/]+(?:/[^/]+|))

因此正则表达式只会尝试捕获多达2条虚拟路径。