̃Gg[͂ĂȃubN}[Nɒlj

apache :: RewriteでForbidden



とあるレンタルサーバーにて、Rewrite を使うことに。

  1. いつものように、.htaccess に RewriteEngine on と記述
  2. RewriteCond やら RewriteRule をごにょごにょ書く
  3. 早速ブラウザで確認
  4. なぜか、Forbidden ( ̄□ ̄;)
  • RewriteEngine on の行をコメントアウトすると Forbidden は解除され、正常に表示される



  • apache のエラーログを見てみると、以下のような行が!
Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /path/to/document/root



対応策をググって発見しました。


対応策

  • .htaccess に以下を記述します(先頭の方に)
Options +FollowSymLinks
  • または + を付けず
Options FollowSymLinks

どちらも「シンボリックリンクを有効にする」という意味です。
シンボリックリンクが無効になっていると Rewrite は機能しないようです。
以下、マニュアルより引用。

ディレクトリ単位の設定ファイルにおける書き換えエンジンを有効にする場合、
これらのファイルに ``RewriteEngine On'' をセットし、かつ ``Options FollowSymLinks'' を
有効にしなければなりません。
あなたのところの管理者がユーザのディレクトリの FollowSymLinks をオーバーライド を
禁止していた場合、書き換えエンジンを使うことはできません。
この制限が必要なのは、セキュリティ関連の理由によります。





server/apache/etc/rewrite_forbidden.txt