技術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にてお仕事中

運用サイト

Amazon Pickup List

Amazon Pickup List
アマゾン関連情報まとめ