技術情報 / Apache / mod_rewrite / .htaccessで設定

mod_rewriteを.htaccessで設定

前提

サーバの設定情報は以下の通りとし、すべてのリクエストに対して、http://www.example.com/error/index.htmlを表示させたい。

  • ドメイン名:http://www.example.com/
  • サーバルート:/home/www/htdocs/
  • .htaccessファイルのフルパス:/home/www/htdocs/.htaccess

記述例

RewriteEngine On
RewriteBase /
RewriteRule ^error/index.html$ - [L]
RewriteRule ^error/img/.*\.gif$ - [L]
RewriteRule .* error/index.html [R,L]

なお、もしRewriteBaseを設定しないと、ベースは.htaccessファイルのフルパスのディレクトリ部(すなわち/home/www/htdocs)となり、書き換え後のURLはhttp://www.exapmle.com/home/www/htdocs/error/index.htmlになってしまう。 これを避けるために、

RewriteRule .* /error/index.html [R,L]

として、リダイレクト先のURLを絶対パス(/error/index.html)で記述してもよい。

参考

www.net-newbie.com/trans/mod_rewrite.html#RewriteBase