- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日本語ファイル名を持つURLの301リダイレクトが動作しない)
日本語ファイル名の301リダイレクトが動作しない
このQ&Aのポイント
- 日本語ファイル名を持つURLの301リダイレクトが正しく動作しない問題が発生しています。
- .htaccessに日本語ファイル名を持つhtmlをUTF8でコード化されたものを使い、リダイレクトの設定を行いましたが、リダイレクトが正常に行われず、404エラーが表示されます。
- 同じ方法で半角英数字のみのファイル名のhtmlをリダイレクトしていますが、そちらは正しく動作しています。日本語ファイル名のリダイレクト時には何か特別な設定が必要なのでしょうか?検索しても情報が得られず、困っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
URLencodeするのではなく、.htaccessにUTF-8でそのまま書けば、リダイレクトされます。 URLにおける「%+16進二桁」のコード指定は、リクエストとして受け付けた内部では、そのコードの文字に置き換えて処理されます。 ですから、 http://example.com/abc.html http://example.com/%61%62%63.html http://example.com/%61%62%63%2e%68%74%6d%6c これらは等価で、内部では全て同じ /abc.html というリクエストとして処理されます。 Redirect permanent /abc.html http://example.com/abc/abc.html は出来ても、 Redirect permanent /%61%62%63.html http://example.com/abc/abc.html は出来ないように、 Redirect permanent /日本語.html http://example.com/abc/%e6%97%a5%e6%9c%ac%e8%aa%9e.html とする必要があります。
お礼
そのまま日本語ファイル名を記述すれば良かったんですか。 仰る通りの方法で無事にリダイレクトされるようになりました。 ありがとうございました。