あなたの習慣について教えてください!!

.htaccessに日本語ファイル名を持つhtmlをUTF8でコード化されたものを使い、
Redirect permanent /%e6%97%a5%e6%9c%ac%e8%aa%9e.html http://example.com/abc/%e6%97%a5%e6%9c%ac%e8%aa% …
と設定しています。

ドメイン直下に置いていたhtmlを/abc/ディレクトリに入れたので、リダイレクトさせたいんですが、リダイレクトされずに404エラーとなります。

同様の記述で、他にも半角英数字のみのファイル名のhtmlをリダイレクトを設定してあり、それは正しくリダイレクトされます。

日本語ファイル名のリダイレクトの際に、特殊な設定などがあるのでしょうか?
検索で探してもヒットせず、どうすればいいのかわからず、困っています。

A 回答 (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% …
とする必要があります。
    • good
    • 0
この回答へのお礼

そのまま日本語ファイル名を記述すれば良かったんですか。
仰る通りの方法で無事にリダイレクトされるようになりました。
ありがとうございました。

お礼日時:2009/12/22 15:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!