日本語文字列を含むURLでApacheのRewrite機能を使おうとして、ハマってしまいました。
(自分的に)普通に考えて、
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/aaa/%E6%97%A5%E6%9C%AC%E8%AA%9E$
RewriteRule .* /bbb/%E6%97%A5%E6%9C%AC%E8%AA%9E
という風に、URLエンコードした文字列を使って書いてみたのですが、うまくいきません。
いろいろ調べてみたところ、とりあえず解決方法は直接日本語で書くことみたいです。
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/aaa/日本語$
RewriteRule .* /bbb/日本語
理由はよく分かっていません。ブラウザの設定によっては違う文字コードでエンコードされて変な結果になるような気もします。
が、何故かうまく動きます。
日本語の文字列を使うといろいろとハマる原因になるので、極力使わない方がいいとは思いますが、使いたくなる場面もあって難しいですね。