Apacheで.htaccessを無効にできないのはなぜですか?
-
03-07-2019 - |
質問
これは、私が読んだほとんどのものとは逆の問題です。 Apache 2.2.8を使用してAmazonインスタンスでUbuntu 8.04を実行していますが、rootのAllowOverrideをNoneに設定しても.htaccessファイルのインクルードが停止しない理由がわかりません。
hello.pyを含むサブディレクトリと.htaccessファイルがあります。ファイルを参照すると、ファイルを提供するmodpythonで正常に機能します。 .htaccessにゴミを入れるとサーバーエラーが発生するため、.htaccessファイルが使用されていることがわかります。また、.htaccessファイルを削除すると、hello.pyはmodpythonによるサーバーではなくなります-代わりにブラウザーがそれを開こうとします。
利用可能なサイトの1つ(サイトが有効にリンクされている)に、<!> quot; AllowOverride None <!> quot;があります。ルートディレクトリ用。これにより、ルートおよびそのすべてのサブディレクトリから.htaccessがインクルードされなくなり、hello.pyがmod_pythonによって提供されなくなると考えました。ただし、引き続き正常に提供され、.htaccessがまだ含まれていることをテストできます。変更すると、ブラウザーに結果が表示されるためです。
サイト対応のファイルについて理解していないことがあるかもしれません。これは私が使用しているファイルです:
NameVirtualHost *:8080
<VirtualHost *:8080>
<Directory />
AllowOverride None
</Directory>
</VirtualHost>
ご協力ありがとうございます。
解決
.htaccessを削除したときにファイルがmod_python経由で提供されない理由は、mod_pythonのセットアップがその中にあるためです。そのようなものをサイトで利用可能なファイルに移動する場合、.htaccessを削除し、問題に目をつぶって1日呼び出すことができます。
それがあなたを満足させないなら、なぜ.htacessが読まれているのかについて、私は言うことができません。 AllowOverride Noneは、ファイルの読み取りを禁止することを妨げません。仮想サイトを追加するときに何かを台無しにした可能性を考慮しましたか? configにゴミを投げて、文句を言わないかどうかを確認してください。それが読まれていることを確認するためです。
他のヒント
AllowOverride
は、<= >-セクション、それであなたはすべて正しいことをしました。
発生する可能性のある問題の1つは、他の(サブ)<Directory>
セクションがNone
を/var/www
とは異なるものに設定することです。これにより、これらのサブディレクトリの設定が上書きされます。
私は使用しています
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
</Directory>
および.htaccess
(私のdocroot)でmod_python
esを使用できます。
<Directory />
を削除すると<=>が機能しなくなるのは、<=>セットアップが通常<=>ファイルにあるためです。
詳細情報が必要な場合は、設定を送信してください。
PS:実際、上記にリンクされている文書には、<=>を<=>で<=>以外の<=>に設定しないでください。