WordPressでのリダイレクトと日本語ドメイン・日本語URI問題

  • このエントリーをはてなブックマークに追加

以前書いた記事にも関連するところだが、

http://〇〇〇.com/abc.html

へのアクセスを

http://〇〇〇.com/def.html

にリダイレクトさせたい場合について、いくつかのケースでの対処法をまとめておくことにする。(まとめないとすぐに忘れてしまうので)

1.アルファベットドメイン、アルファベットURIの場合

いろいろやり方はあるが
簡単なのは、.htaccessに

(1.1)

もしくは

(1.2)

と書く方法。

.htaccessを使いたくない場合(もしくは使えない場合)は、もしWordPressを入れているサイトだと、

(1.3)
『Redirection』という無料のプラグインを入れれば簡単に対処できる。

2.アルファベットドメイン、日本語URIの場合

例えば、リダイレクト先が

http://〇〇〇.com/はじめに/

だったような場合。

まず、.htaccessで処理しようとした時に

このように書いても、RewriteRuleの中で%nが独自の意味を持ってしまうため、うまくリダイレクトされない。

RewriteRuleを使ってどうしてもリダイレクトさせたいのならば、URIがエンコードされた部分の「%」をエスケープして、さらに、フラグとしてNo Escapeを意味する[NE]を指定することで、リダイレクトできるようになる。上の例で言うと、

(2.1)

となる。

で、実は、RewriteRuleを使わずに、Redirect 301~を使う場合は%nがURLに入っていても問題なくリダイレクトされる。したがって、

(2.2)

でOK。こっちのほうが断然簡単なのである。

(2.3)
ちなみに、1と同じく、WordPressを入れているならば『Redirection』が問題なく使える。

3.日本語ドメインの場合

念のためと思って日本語ドメインのケースも調べてみた。

(3.1)(3.2)
すると、.htaccessを使う場合は、アルファベットドメインのケースと同じ書き方で問題なくリダイレクトできた。

しかし、動きが異なったのがWordPressの『Redirection』プラグイン。

リダイレクト先として設定した
http://〇〇〇.com/はじめに/

のドメインの「〇〇〇」の部分が認識できず

http://.com/はじめに/

にリダイレクトされてしまうという事態に。

 
細かい原因はわからないが、日本語ドメインでリダイレクトさせたい場合は『Redirection』プラグインは使えないことは覚えておこう。
(勘違いだったらごめんなさい)


サブコンテンツ