.htaccessを利用した日本語URLの転送(リダイレクト)設定で気をつけること
通常、Jimdoで作成したページURLは、ページの名称がそのままURLとなります。
つまり、日本語の名称を持ったページのURLは全て日本語URLとなります。
Jimdoには、JimdoPro/JimdoBusinessというプランで利用できるカスタムURL機能というものがあります。この機能を使えば、ページの日本語名称はそのままにURLを変更することができます。
そんなJimdoで作ったサイトをWordPressでリニューアルすることになり、旧ページから新ページに転送(リダイレクト)をかけました。
その際、うまく転送設定が動かなかったので、調べたところ日本語URLの転送設定にはちょっとしたコツが必要なことがわかりました。
そこで、今回は日本語URLの転送設定について紹介します。
一般的な転送設定
「test1」から「test2」に転送させたい場合
.htaccessを利用した、一般的なリダイレクト設定は下記のとおりです。
RewriteEngine On RewriteRule test1 "https://www.sendai-kuraso.com/test2" [R=301,L]
日本語URLでの転送設定
「テスト」から「test」に転送させたい場合
まずは、一般的なURLと同じように転送設定を書いてみます。
日本語URLは、ブラウザが「URLエンコーディング」で変換して表示してくれますので、日本語「テスト」はエンコーディングされると「%E3%83%86%E3%82%B9%E3%83%88」となります。
このエンコーディングされた文字列を.htaccessに書いて転送設定してみます。
RewriteEngine On RewriteRule %E3%83%86%E3%82%B9%E3%83%88 "https://www.sendai-kuraso.com/test" [R=301,L]
結果としては、この記述では転送に失敗します。
転送失敗の原因と解決方法
なぜ転送に失敗したのか
エンコーディングされた文字列内「%」が「x」に自動変換されてしまうためです。
この自動変換によりURLとして成り立たなくなるため、転送失敗となってしまいます。
問題を解決するには?
この問題を解決するには、「%」の部分を「\x」に置き換える必要があります。
つまり、「%E3%83%86%E3%82%B9%E3%83%88」は「\xE3\x83\x86\xE3\x82\xB9\xE3\x83\x88」となります。
これを元にして設定した、転送設定がうまくいく書き方は下記のとおりです。
RewriteEngine On RewriteRule \xE3\x83\x86\xE3\x82\xB9\xE3\x83\x88 "https://www.sendai-kuraso.com/test" [R=301,L]
この書き方であれば、正常に転送されます。
まとめ
もちろんそれ以外にも可能性はありますが、特にJimdoでサイトを作っている場合、どうしても日本語URLになりがちです。
そこから使用サービスを変え、旧ページから新ページに転送(リダイレクト)をかける場合、いつもの書き方ではうまく転送されません。
日本語URLでの転送設定では、エンコーディングされた文字列「%」の部分を「\x」に置き換える一工夫を忘れないようにしましょう。
MovableType/WordPressを使ったホームページ制作、機能追加や設置代行などの改修、システム開発、サイトの保守を手掛けております。
アナタが実現させたい機能、やりたい事をお聞かせいただけませんか? そのイメージを一緒に実現しましょう!
お問い合わせは以下のページから!!