技術Labo

気になったことやちょっとした作業の覚書

.htaccessでリダイレクト先が日本語URLの場合

.htaccessでリダイレクトがうまく出来ないないのはなぜ?

日本語を含むURLにリダイレクトする場合の注意事項

https://www.google.com/search?q=%E6%97%A5%E6%9C%AC%E8%AA%9E

上記のような日本語を含むURLをリダイレクト先に設定する場合は少し特殊な対応が必要になります

% を \% に置換し [NE] を最後に付けます

NENo Escape“.”, “?”, “%”などの特殊文字が”%25″のようにエンコードされるのを防ぐ

% を \% に置換するとどうなるか

置換前
https://www.google.com/search?q=%E6%97%A5%E6%9C%AC%E8%AA%9E

置換後
https://www.google.com/search?q=\%E6\%97\%A5\%E6\%9C\%AC\%E8\%AA\%9E

\ はスラッシュではなくバックスラッシュなのでご注意ください。

.htaccessでの記述例

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ 置換後のURL [NE,R=301,L]

これで日本語を含むURLにリダイレクトができるようになります。

関連記事

フリースタイル
WEBシステムエンジニア
制作作業の合間に、情報の整理。ポートフォリオ用まとめサイト
Lancers にてお仕事中

それで言い訳つくだろ!帰っちまえ!

機動戦士ガンダムUC
by リディ・マーセナス