apache のmod_rewrite でハマった話[ubuntu][apache]

環境
ubuntu 12.04

rewriterule の書き方でハマった。

備忘録込で、まずは、mod_rewriteを使えるようにするところから。
ubuntu12.04のapacheではmod_rewriteはデフォで無効なのでを有効にする。

% sudo a2enmod rewrite

有効にしたいディレクトリのAllowOverride をAllにする

% sudo vim /etc/apache2/site-enabled/00-default
        
                Options Indexes FollowSymLinks MultiViews
             - AllowOverride None
             +AllowOverride All
                Order allow,deny
                allow from all
        


http://sample.com/hoge/ 以下をhttp://sample.com/bar/ 以下にrewriteする
.htaccess に以下のようにかく。

% vim /var/www/.htaccess 
  RewriteEngine On 
  RewriteRule ^hoge/(.*)$ /bar/$1

ここではまったのだけど、次のようにしたら、よくない。

  RewriteRule ^/hoge/(.*)$ /bar/$1

なお、.htaccessは AccessFileName で規定されているので、別ファイル名にしたかったら、apache2.confを書き換えたら良い。

$ sudo grep  -ir AccessFileName /etc/apache2/
/etc/apache2/apache2.conf:# AccessFileName: The name of the file to look for in each directory
/etc/apache2/apache2.conf:AccessFileName .htaccess