日本語文字列をurl_encodeしたものを引数に含めたURLをmod_rewriteで転送させようとするとエラーになります。
http://www.hoge.com/%82%A0.html
を以下にしたいのです。
http://www.hoge.com/entry.php?ID=%82%A0
.htaccessの設定ファイルは以下の通りです。
Options -Indexes +SymLinksIfOwnerMatch
<IfModule mod_rewrite.c>
<IfModule mod_dir.c>
DirectoryIndex index.php
</IfModule>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*).html$ entry.php?ID=$1 [L]
</IfModule>
引数が英数字だとうまく転送されています。例えば
http://www.hoge.com/aaa.html
です。
これはどのように解決できますでしょうか。
みなさんよろしくお願い致します。
手元の環境では、次のようなentry.phpを作成したところ、
<html> <body>id :</body> </html>
http://XXXX/%E3%81%82%E3%81%84%E3%81%86.html
できちんと、
id : あいう
と表示されました。
エラーになるとのことですが、どのようなエラーでしょうか?
entry.phpの実行によるエラーではないでしょうか?
回等ありがとうございます。また、わざわざ試していただきありがとうございます。
エラーの内容ですが、ブラウザは404を返してきます。そして「引数が英数字」だとエラーは発生しません。
Urlencodeされた文字を引数に含めている場合のみエラーになります。
エラーの詳細はApacheのrewrite.logに(コメント欄に追記しております)書かれていると思うのですが、3行目辺りから怪しい文が出てきます。
別の環境(Xrea)では問題なく転送できるのですが。local(Win)上にXAMPPで構築したApacheではエラーになってしまいます。設定が必要なのでしょうか。
何か些細な事でもいいのでヒントを頂けるとありがたいです。お気軽に回等下さい。みなさんよろしくお願い致します。