web-dev-qa-db-ja.com

Apache認証:サブディレクトリへのパブリックアクセスを許可します

これはおそらく単純な問題ですが、ドキュメントで解決策を見つけることができません。

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ファイルにアクセスして構成を行うだけです。

認証を無効にするディレクティブはありますか?

助けてくれてありがとう ...

13
Guillaume

ホストが何を許可したかによっては、.htaccessに問題はないはずです。

次のようにして、サブフォルダーに.htaccessを配置してみることができますが、その中にあるディレクトリに対してオーバーライドを有効にする必要があります。

 Allow From All
 Satisfy Any
10
Cylindric

パス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」です。 「すべてを満たす」がデフォルトです。

7
CK.

これでうまくいくと思います:

# put the global auth stuff here
...

# put the override here
<Location /public>
Allow from All
Satisfy Any
</Location>
1
Alnitak

私はこれをどうにかしてこれを解決しました:

<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ファイルを使用しても機能しませんでした。

それが役に立てば幸い。

0
xela92