2013年8月25日日曜日

.htaccessで日本語ファイルを301リダイレクトさせる方法

私はあるアフィリエイトASPでアフィリエイトを
しているのですが、そのASPが規約を変更して、
ドメイン名やサブドメイン名だけでなく、URLにも
運営サイトの名称などが使えなくなりました。

【参照】http://www.ekenbark.com/url-keyword.html

つまり、サイト名.htmlのようなことができなくなった
わけです。

まさか、ここまで規約が厳しくなるとは思ってもみなかったのですが、
どうやら不正をするアフィリエイターが頻発していたようです。

で、仕方なく、サイト名.htmlのような日本語ファイルを
.htaccessで301リダイレクトされようと試みたのですが、
まず、躓いたのが、.htaccessでの書き方です。

当然、.htaccessでは日本語ファイル名なんて使えないと思って、
URLエンコードしたものを記載したのですが、これでは
ダメでした。

で、もしやと思って、日本語のまま記述すると、いけました。
以下のような感じです。

Redirect 301 /サイト名.html http://ドメイン名/saitomei.html

ただ、これにはちょっと問題があって、サーバーによっては
.htaccessをUTF-8Nでエンコードしてやらないと、
機能しないところがありました。

はい、Dreamhostです。

Dreamhostは日本語ファイル名をそのまま利用できるのですが、
ファイル自体がUTF-8でエンコードされているので、
.htaccessをUTF-8Nでエンコードしないといけません。

UTF-8ではダメです。

必ず、TeraPadなどで、UTF-8Nでエンコードしてください。