page_adsence

2011年3月8日火曜日

mod_rewriteを使おうとしたらOSデフォルトのWebページになってしまった

.htaccessを使って新集計ツールサーバに来るアクセスを全てメンテナンスページにリダイレクトさせる設定をしようとした。
とりあえずhttpd.confの中のAllowOverrideがNoneになっていたので、そこをAllに修正して保存しreload
<Directory />
    Options FollowSymLinks
    AllowOverride None → All
</Directory>


で、.htaccessに以下のように記述してページにアクセス。
<Directory ~~~>
ErrorDocument 503 /html/maintenance.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/html/maintenance.html
  RewriteCond %{REQUEST_URI} !=/images/construction.jpg
  RewriteRule ^.*$ - [R=503,L]
</IfModule>
</Directory>


すると、CentOSデフォルトのWebページが表示されてしまった。
エラーログを見ると以下のようなエラーが出ていた。
Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: ディレクトリパス


mod_rewriteを使うディレクトリでは「Options FollowSymLinks」が必要だったので、
そこを.htaccessに追加したら問題なく動いた。
Options FollowSymLinks
ErrorDocument 503 /html/maintenance.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/html/maintenance.html
  RewriteCond %{REQUEST_URI} !=/images/construction.jpg
  RewriteRule ^.*$ - [R=503,L]
</IfModule>