1

私は最近、Ubuntu で FatFree をかなり頻繁に使用しており、サブディレクトリに配置しても問題はありませんでした。ただし、最近、Mac (10.6.8) のユーザー Web サイトでこれを実行しようとしたところ、ルーティングが機能するために RewriteBase が必要になるという問題に遭遇しました

Ubuntu のデフォルトの Apache セットアップで .htaccess に RewriteBase がなくてもルーティングが機能するように見える理由を誰かが知っているかどうか疑問に思っていましたが、Mac でのセットアップではそれが必要になります。

Ubuntu のセットアップでは多数の VirtualHosts を使用しますが、Mac の構成にはサーバー構成、mod_userdir が有効化され、各ユーザーの Sites ディレクトリのディレクティブが含まれているだけです。

4

3 に答える 3

3

mod_rewriteのドキュメントには、次の条件のいずれかに該当しない限り、RewriteBase ディレクティブが必要であると記載されています。

  • 元のリクエストと置換は、DocumentRoot の下にあります (エイリアスなどの他の手段では到達できません)。
  • RewriteRule を含むディレクトリへのファイルシステム パスは、相対置換によってサフィックスが付けられ、サーバー上の URL パスとしても有効です (これはまれです)。

mod_userdir を使用しているため、最初の条件はおそらく Ubuntu のセットアップで満たされていますが、Mac のセットアップでは満たされていません。ファイルを ~/Sites から DocumentRoot (Mac のデフォルトは /Library/Webserver/Documents) に移動すると、RewriteBase が不要になる可能性があります。

于 2013-07-16T19:13:02.537 に答える