最近Macに乗り換えたのですが、Apacheで設定したところおかしなことが起こりました。
たとえば、私のローカル ディレクトリは ~/Work/app/a/b で、www.test.com をローカルの ~/Work ディレクトリに指定し、http://www.test.com/app/a/ にアクセスします。 bは問題ありません。
しかし、Options Indexes
を開いて http://www.test.com/app/a/ を開くと、b ディレクトリが表示され、それをクリックすると、URL が http://www.test にジャンプします。 com/app/b ゴー!絶対パスを使用して直接開くのが通常であり、ジャンプしないことに注意してください (したがって、権限の問題ではないと思います)。
ルートディレクトリの.htaccess
,并没有看出什么端倪。把 mod_rewrite
を確認しましたが、コメントアウトしても効果がありません。
奇妙なことに、私のアプリの下には多くのディレクトリがありますが、すべてのディレクトリに問題が発生するわけではありません。それらの共通点を探してみましたが、どうやら 1 つだけあります。それは、跳ね返されるディレクトリ (ファイル) がすべてディレクトリの最終レベルにあるということです。
あなたはこのような状況に遭遇したことがあるでしょうか。私の Apache のバージョンは Yosemite に付属している 2.4.10 です。
ありがとう!
自分で質問して答えてください...
理由は簡単で、ディレクトリアドレスの後に自動的にスラッシュを追加するための
mod_dir
!mod_dir
中有一个参数叫DirectorySlash
をオンにしていなかったからです。これまでこのモジュールをロードしたことがないため、当然この機能は機能しません。
そして、それが良いとも悪いとも思うのは、自分でスラッシュを入れることがあるからです。
をオフにする理由は、このパラメーターが無効であるため、Apache がディレクトリ内の (ローカル開発用の) Index.html を自動的に開くことができないためです。その結果、私は自分で穴を掘りました。
参考ドキュメントmod_dir
,是为了让DirectoryIndex
実際には、を設定するだけで済みます (バージョン 2.4 以降でのみ利用可能)。
DirectoryIndex disabled