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

天才は嫌いだ
積み重ねたものの美しさが無い

葬送のフリーレン
by リュグナー