これはおそらく単純な問題ですが、ドキュメントで解決策を見つけることができません。
BASIC認証を使用してWebサイトをパスワードで保護したい。しかし、私はサブディレクトリを非保護にしたい:
http://mysite.com/ -> BASIC protected
http://mysite.com/somedir -> BASIC protected
http://mysite.com/someotherdir -> BASIC protected
http://mysite.com/public -> not protected
すべてのサイトを保護することに問題はありませんが、1つのディレクトリを「保護解除」する方法を知りません。サイトは共有ホストでホストされているので、.htaccessファイルにアクセスして構成を行うだけです。
認証を無効にするディレクティブはありますか?
助けてくれてありがとう ...
ホストが何を許可したかによっては、.htaccessに問題はないはずです。
次のようにして、サブフォルダーに.htaccessを配置してみることができますが、その中にあるディレクトリに対してオーバーライドを有効にする必要があります。
Allow From All
Satisfy Any
パスserver.com/private/publicの場合:
server.com/private/.htaccess
AuthType Basic
AuthName "Private, keep out."
Require...
server.com/private/public/.htaccess
Allow From All
Satisfy Any
ここで重要なのは、上流からの要件をORする「Satisfy Any」です。 「すべてを満たす」がデフォルトです。
これでうまくいくと思います:
# put the global auth stuff here
...
# put the override here
<Location /public>
Allow from All
Satisfy Any
</Location>
私はこれをどうにかしてこれを解決しました:
<Directory "/path/to/maindirectory">
[... auth stuff ... ]
</Directory>
<Directory "/path/to/mysubdirectory">
Allow from All
Satisfy Any
</Directory>
場所は大文字と小文字を区別するように作成されており、実際のフォルダーアクセスではなくURLでのみ機能するため、使用しないでください。
したがって、たとえば、
http:/mywebsite/STUFF
または
http://mywebsite/stuff
または
http://mywebsite/StUfF
呼び出された物理ディレクトリが同じであっても、位置制御では異なります!!!
要するに、あなたはディレクトリ「もの」のアクセスをチェックし、私はそれを別のケースで書くことができます。
また、他の場所を制御する単一のディレクトリで.htaccessファイルを使用しても機能しませんでした。
それが役に立てば幸い。