日本語をエスケープしたクエリー付きの URL を Apache の mod_rewirte でリライトする時、クエリーが2重にパーセントエンコード(URLエンコード)されるのを避ける方法。 https サイトへのアクセスはサーバに負担を掛けるのでなるべく減らしたい。このため、暗号化通信が不要な場所は http 側にリダイレクトする。この設定は下記の通り。 https 側の VirtualHost の設定 RewriteRule ^/((public1|public2)/.*)$ http://www.example.com/$1 [R=301,L] mod_rewrite はクエリー文字列(QUERY_STRING)を残して転送してくれるが、転送の際に、パーセントエンコード)された文字列をさらにパーセントエンコードしてしまう。このため、「検索ページ」などへの クエリー付 GET アクセスを
![mod_rewrite でクエリーが2重にエンコードされるのを避ける](https://cdn-ak-scissors.b.st-hatena.com/image/square/e3bbf8a81c197c236fdc810a168047e59efb5984/height=288;version=1;width=512/http%3A%2F%2Fhole.sugutsukaeru.jp%2Fparts%2Fimg%2Fhole-logo-square.png)