【備忘録】日本語URLの.htaccessのリダイレクト

 

 Web技術

リダイレクト前のURLはエンコードせず、
リダイレクト後のURLはエンコードする

WordPressのカテゴリ名を変更して、リダイレクトもお願いします、というご依頼。

カテゴリ名の変更は特に問題はないですが、
.htaccessのリダイレクトでまず私がつまづいたのは、
変更前のスラッグが日本語だったということでした。

例えば

変更前のスラッグ名:「活動報告」←日本語
変更後のスラッグ名:「activity」

とした時、

通常のリダイレクトなら、URLをコピーして .htaccess に…
こんな感じでうまくいくのでは…と思いましたが、
きちんとリダイレクトされず。 😥 

NG例:

 

このように書くとうまくいきました。

成功例:

日本語でいいんですね…
😯

 

今回は、
変更後のスラッグは半角小文字で登録したのですが、

どうやら、
日本語URLの場合は、
リダイレクト前のURLはエンコードせず
リダイレクト後のURLはエンコードする必要がある模様。

また、サーバーによっては
.htaccess の文字コードは「UTF-8」になっているかどうかも要確認です。

 

WordPressのスラッグは、日本語でも通用してしまう

WordPressで新規カテゴリーを追加する際、

”スラッグ”はURLに適した形式の名前です。通常はすべて半角小文字で、英数字とハイフンのみが使われます。

という記載がありますが、
日本語を入れてもそのまま設定されます。

また、
スラッグを空欄にしたままカテゴリーを追加すると、
カテゴリーの名前がそのままスラッグにも反映されるので、結局日本語になってしまうというケースが多いようです。

新規カテゴリ追加の際、スラッグを空欄のままにすると

カテゴリの名前に「テスト」、
スラッグを空欄にして追加すると、

名前に入力した日本語がそのままスラッグに反映されます

名前に入力した「テスト」が、
そのままスラッグにも登録されました。

これが結局URLになるのですが、
「スラッグ」と言われても、なかなか難しいですよね… 😕 

 

日本語は、URLエンコーディングされて表示される

URLに含まれている日本語は、
URLエンコーディングされて表示されます。

ここで日本語にて「活動報告」とスラッグを設定したとすると、

URLはURLエンコーディングされ、
https://xxxxxxxxx.jp/%E6%B4%BB%E5%8B%95%E5%A0%B1%E5%91%8A
となります。

ブラウザ上では
https://xxxxxxxxx.jp/活動報告
と表示されているかもしれませんが、
ブラウザからURLをコピーして、メモ帳に貼り付けしてみると、
URLエンコーディングされていることを確認することができます。

 

個人的には、
スラッグは日本語を避けていただくことをおススメします。

 


こちらの記事を参考にさせていただきました。ありがとうございます。 😳 😳 😳 

 この記事の投稿者

アバター画像

iziz

Webデザイナー&HTMLコーダーときどきイラストレーター。
  • このエントリーをはてなブックマークに追加
  • 0 follow us in feedly

ページ最上部へ