スポンサーリンク

WordPressのパーマリンクが日本語URLになっている場合、WordPressプラグインRedirectionで設定してもリダイレクトされない場合があります。
これを正常にリダイレクトできるようにする方法を解説します。

原因


リダイレクトを設定する際にアナリティクスでページURLが日本語のままだったので、日本語の部分を下記ツールでエンコードしました。
http://www.tagindex.com/tool/url.html

すると、エンコード後の文字列が小文字だったのですね。

%8fZ%82%de%82%c8%82%e7%82%b1%82%b1%81I%20%90k%93x%82T%88%c8%8f%e3%82%cc%92n%90k%82%cc%8f%ad%82%c8%82%a2%93s%93%b9

そのURLをRedirectionで設定したのが間違いだったのです。

このプラグインは大文字と小文字は別で区別しますので、日本語が大文字でエンコードされたURLからアクセスされてもリダイレクトされません。

対応策

Redirectionプラグインのフォルダ内に【models】フォルダ内のredirect.phpを開きます。
関数matchesの$matches   = false;の次の行辺りに

// 大文字を小文字に変換
$this->url=mb_strtolower($this->url);
$url=mb_strtolower($url);

を追加します。
こうすることで、アクセスURLとリダイレクト設定URLの大文字を小文字に変換されます。
いずれも小文字で比較しますので、実質的に大文字も小文字も区別せずに一致判定ができるようになります。

スポンサーリンク

まとめ

googleは日本語のパーマリンクの箇所を大文字でインデックスするようです。
wordpressでは大文字でも小文字でもちゃんとページ表示はするんだけど、リダイレクト的には大文字小文字は区別されます。

スポンサーリンク