2016年1月30日 : してログ

サイトのドメイン移転で使われる「301リダイレクト」を設定してみて、あれって思ったことがあった今日この頃。 実は、このサイト自体のドメインを landhere.info から landhere.jp に移転することにして、mod_rewrite でリダイレクトを設定したんです。

なぜかリダイレクト後の URL に「/」がひとつ多い

いろんなサイトに紹介されている下記のような設定を記述してみました。 ちなみに、ドメイン移転だけなので .htaccess は使わずに、httpd.conf の VirtualHost に書いてみました。

RewriteEngine on
RewriteRule (.*) http://landhere.jp/$1 [R=301,L]

実際にブラウザで確認してみると、「http://landhere.info/blog/」が「http://landhere.jp//blog/」にリダイレクトされるのを確認。 でも、よく見ると「/」がひとつ余計である。 前に設定したときは、こんなことは無かったと思うけど、最新バージョンでは挙動が異なるのか何なのか、とりあえず。

RewriteEngine on
RewriteRule (.*) http://landhere.jp$1 [R=301,L]

このように変更して解決しました。 まあ、少し嵌ったんですが。

設定を変更してもリダイレクト結果が変わらない

設定を変更した後、再びブラウザでテストしても同じリダイレクト先に飛ばされます。 正規表現を弄ったりしても、何しても結果は変わらず、しばらく悩んだ末。 大胆にリダイレクト先ドメイン名を www.yahoo.co.jp にしてみよう、というのを試してみてやっと分かった。 ブラウザがひと度、301リダイレクトを受け取ってしまうとキャッシュしてしまう、というのが真相らしい。 と言う訳で、キャッシュクリアを実行して正しいリダイレクトが行われるのを確認しました。 くだらない事で消費した時間を返して欲しいです。