web-dev-qa-db-ja.com

パラメータ付きURLのRewriteCond

URLを書き換えるのに問題があります。これ欲しい :

http://www.foo.com/test.php?u=s1&id=12345&img=12

http://app.foo.com/12345-s1-12.test

最初のパラメータuは文字列、パラメータidとimgは整数です。

私はそのようなものから始めました:

RewriteCond %{REQUEST_URI} ^/test.php?u=(.*)&id=(.*)&img=(.*)/ [NC]
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test [QSA,R=301,L]

ありがとう:)

編集:

まだうまくいきませんが、もうすぐです!

RewriteCond %{REQUEST_URI} ^/test.php [NC]
RewriteCond %{QUERY_STRING} ^u=(.*)&id=(.*)&img=(.*)
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test [QSA,R=301,L]

今、それは私にそのリンクを与えます:

http://app.foo.com/12345-s1-12.test?u=s1&id=12345&img=12

の代わりに :

http://app.foo.com/12345-s1-12.test

:(

16
CrazyMax

解決しました!

RewriteCond %{REQUEST_URI} ^/test.php [NC]
RewriteCond %{QUERY_STRING} ^u=(.*)&id=(.*)&img=(.*)
RewriteRule (.*) http://app.foo.com/%2-%1-%3.test? [R=301,L]

? RewriteRuleの最後で、以前のクエリ文字列情報を削除します。

30
CrazyMax