我的httpd.conf
中有以下规则 RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} password=*
RewriteCond %{QUERY_STRING} bi2=(.*)
RewriteCond %{REQUEST_URI} /myGet.php(.*)$
RewriteRule ^(.*)$ http://blog.myexample%1.com/$1
然而,当我执行请求URI
时/myGet.php?password=john&bi2=67
我被重定向到
而不是
似乎RewriteCond BackReferencing的%N无效。 虽然$ N 。
答案 0 :(得分:3)
更改顺序或RewriteCond
指令,以便最后一个指令是您想要信息的指令:
RewriteCond %{QUERY_STRING} password=*
RewriteCond %{REQUEST_URI} /myGet.php(.*)$
RewriteCond %{QUERY_STRING} bi2=(.*)
RewriteRule ^(.*)$ http://blog.myexample%1.com/$1
但我建议:
RewriteCond %{QUERY_STRING} password=
RewriteCond %{QUERY_STRING} bi2=([^&]*)
RewriteRule ^/myGet\.php.*$ http://blog.myexample%1.com$0