Как использовать RewriteCond BackReferencing% N - PullRequest
2 голосов
/ 11 марта 2009

У меня есть следующие правила в моем 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? Пароль = джон & bi2 = 67

Я был перенаправлен на

http://blog.myexample.com/myGet.php?password=john&bi2=67

вместо

http://blog.myexample67.com/myGet.php?password=john&bi2=67

Кажется, что% N для RewriteCond BackReferencing не работает. Хотя $ N равно .

1 Ответ

3 голосов
/ 11 марта 2009

Измените порядок или директивы 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...