mod_rewriteでForbidden You don't have permission to access

/hoge/a.htmlにアクセスしたら/hoge/b.htmlにリダイレクトするようにしようと、/hoge/.htaccessに以下のように設定した。

RewriteEngine on
RewriteRule ^a.php$ /hoge/b.php [R=301,L]

すると、、、
a.htmlにアクセスすると、

Forbidden

You don't have permission to access /hoge/a.html
on this server.

b.htmlにアクセスしても、

Forbidden

You don't have permission to access /hoge/b.html
on this server.

というエラーになる。
Apacheのerrorlogを見てみると、

Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /xxxx/xxxx/xxxx/hoge/a.html

と出ていた。
そこで、/xxxx/xxxx/xxxx/hogeのDirectoryディレクティブに、

<Directory "/xxxx/xxxx/xxxx/hoge">
  Options FollowSymLinks
</Directory>

のように設定したら、解決。
mod_rewriteには、FollowSymLinksが必要。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください