2009-03-11 8 views
2

を使用するにはどうすれば持ってするRewriteCond後方参照の%のN

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 &リクエストを実行したときに、私のhttpd.confに以下のルールBI2 = 67

私は

0123にリダイレクトされました

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

代わりの

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

RewriteCond BackReferencingの%Nが動作していないようです。 $ Nはですが。

答えて

3

アルターためかRewriteCondディレクティブ最後のディレクティブは、あなたからの情報を欲しい1になるように:

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 
+0

この種かどうかわからないうーん、並べ替えのいずれか良いかどうかは何をしますか?2番目の最後の%2逆参照値を取得する必要がある場合はどうなりますか? – Graviton

+0

これを行う方法は他にありません。または少なくとも:私はこれを行うための他の方法を知らない。 "パスワード"が必要な場合は、値をRewriteCondディレクティブに沿って運ぶか、1つの式に結合するためのトリックを使用する必要があります。 – Gumbo

関連する問題