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)で記述してもよい。

参考

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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2008-01-22 (火) 20:08:16