Rewrite Cond

时间:2017-03-17 01:12:55

标签: apache redirect mod-rewrite query-string

我想基于QUERY_STRING参数执行重定向,例如:

来自此网址 mySite.com/index.html#query?id=1111

到此网址 mySite.com/newSite/query#query?id=111

我在线搜索了如何在RewriteCond中使用该参数,以下是我的配置:

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^query?id.*$
RewriteCond %{REQUEST_URI} ^/index.html.*$
RewriteRule /index.html(.*) /newSite/query%(QUERY_STRING)

我已启用跟踪调试模式,并注意到条件被触发,但输入为空,如下面的屏幕所示

rewritecond input = ''

有人可以就此问题提出建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

据我所知(在php中工作),锚点(#)之后的文本实际上从未发送到服务器。

即使/index.html之后没有任何字符,您的条件也会一直触发,这是因为您使用了0或更多的量词(*符号),因此,如果任何字符中有0个或更多( 。符号),它将触发重写规则

问题是没有实际输入(如您所注意到的:))