2017-05-15 9 views
1

Regexを使用して醜いURL(http://example.com/image.php?id=1&name=Dog)をきれいなURL(http://example.com/1/Dog)に書き直す手助けをしたいと思います。RewriteRule - UglyからPrettyへのURLが正しく解析されない変数

これと逆のバージョン、および必要なバージョンの他のバージョンについては、多くの質問があります。それにもかかわらず、それらは機能しません。

RewriteRule ^image.php\?id=(.*)&name=(.*)$ http://example.com/$1/$2? [R=301,L] 

これは私が思いついた正規表現です。 (?)Regex101でそれをテストするhttps://regex101.com/r/uUlccx/2

は、それはこの1つの逆であるべき罰金のようだ:

RewriteRule ^([^/]*)/([^/]*)$ /image.php?id=$1&name=$2 [L] 

しかし、それはないように思えます。誰でもRewriteRuleがどうあるべきか知っていますか?

編集:http://htaccess.mwl.be?share=47b41b23-1752-5a26-8432-196c95d1d669 htaccessのテスター

編集2:私は少しさらに得たが、それはまだ完全に動作していないようです。第二の可変は、書き換えに取り込まれていない:

RewriteCond %{QUERY_STRING} ^(.*&)?id=(.*)&name=(.*)$ 
RewriteRule ^image\.php$ http://example.com/%1/%2/? [R=301,L] 

答えて

2
RewriteCond %{QUERY_STRING} ^id=(.*)&name=(.*)$ 
RewriteRule ^image\.php$ http://example.com/%1/%2/? [R=301,L] 

これが解決策になるようです。通常の書き換えルールでクエリ値が見つかりませんでしたか?

関連する問題