2017-01-20 9 views
0

に、私はhtaccessファイルでは、この正規表現があります。htaccessの正規表現のリダイレクトは、 "HTTP/1.0" を置くURL

RewriteCond %{THE_REQUEST} .*?/out/([^/]+)/?(.*) [NC] 
RewriteRule^http://%1.example.com/%2?aid=123 [NE,L,R=302] 

このURL

www.mydomain.com/out/cars/bmw/ 

戻り

http://cars.example.com/bmw/%20HTTP/1.0?aid=123 

実際には、そこにあるの常に%20HTTP/1.0?aid = 123 URLを問わずwww.mydomain.com/out/私は試してみます:(

なぜですか?どのようにそれを取り除く?

ありがとうございます!

+0

のhtaccessファイル内の正規表現の使用についての詳細をお読みください。あなたのウェブサーバ(nginx、apacheなど)のドキュメントを参照したいかもしれません – nazim

答えて

1

問題はTHE_REQUESTにマッチしていますが、これはあなたが考える以上のものです。代わりにREQUEST_URIを使用してください。参考のため

RewriteCond %{REQUEST_URI} /out/([^/]+)/?(.*) [NC] 
RewriteRule^http://%1.example.com/%2?aid=123 [NE,L,R=302] 

:このような何か http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond

+0

ありがとうございました! – Pupik