.htaccessでリダイレクション&.htaccessの設定覚え書き
先日の記事で書いたVPSのリダイレクション設定が時間がなくて気持ち悪い書き方
(index.htmlのMETAタグにリダイレクション設定)だったので、修正しようとしましたが、思ったより苦戦したので、メモがわりに覚え書き
.htaccessでのリダイレクション設定
設定前のリダイレクション設定はindex.htmlのMETAタグにリダイレクション設定を記載という適当すぎる方法でした。
ドメインへのすべてのリクエストに対して、このブログへのリダイレクションをする方法がないかと調べたら、HTTPレスポンスに転送に関するものがあり、
今回は一時的な転送である302で返すように.htaccessに設定を記述
RedirectMatch 302 .* http://d.hatena.ne.jp/ik11235/
.htaccessの有効化
.htaccessを読み込むためには、/etc/httpd/conf/httpd.confの設定の変更が必要
初期では利用するためのモジュールも読み込まれていなかったので、以下の1文を追加
LoadModule rewrite_module modules/mod_rewrite.so
さらに、.htaccessの設定反映の有効化のために
htmlファイルのディレクトリ設定部分(デフォルトでは
AllowOverride None
↓
AllowOverride All
に変更
httpd.confを変更した場合、Apacheの再起動が必要なので、
以下のコマンドで再起動
sudo /etc/rc.d/init.d/httpd restart
しかし、最初にこの設定を行った際にはserverが500を返すようになってしまい、うまく動いてくれませんでした。
その際に、Apacheのエラーログを見ると、
".htaccess: Regular expression could not be compiled."
というエラーが…
調べてみると、Apache上での正規表現の書式に関するもので、
全てに一致は、"*"だけではなく,".*"という書き方をしなければいけなかったらしく、最初に設定していたものを以下の修正したら動きました
RedirectMatch 302 * http://d.hatena.ne.jp/ik11235/
↓
RedirectMatch 302 ,* http://d.hatena.ne.jp/ik11235/