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-defaultOptions 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