サブディレクトリから.htaccessパスワード保護を削除する方法


96

パスワードを使用して自分のWebサイト全体をパスワードで保護しています.htaccessが、サブディレクトリの1つを公開して、パスワードなしで表示できるようにしたいと考えています。

サブディレクトリのhtaccessパスワード保護を無効にするにはどうすればよいですか?具体的には、.htaccess構文は何ですか。

これ.htaccessが私のFTPのルートに置かれた私のファイルです。

AuthName "Site Administratrion"
AuthUserFile /dir/.htpasswd
AuthGroupFile / dev / null

安全なAuthName
AuthType Basic
ユーザーusername1が必要
注文を許可、拒否
すべてから許可

4
これは、serverfaultに適しています。
2009

回答:


153

Apache 2.3まで.htaccessは、必要なディレクトリに新しいファイルを作成し、その中にSatisfy anyディレクティブを含める必要があります。

# allows any user to see this directory
Satisfy Any

構文はApache 2.4で変更されました。これは同じ効果があります。

Require all granted

7
私はこれで動作しAllow from allないようにすることができましたSatisfy Any
Jess Telford

@JessTelfordはコードスニペットを上手に利用しています。@RageZ +1は、私にとって有効な回答です。答えを非常にシンプルに編集して、コードスニペットメソッドを使用して投稿してください。そうでなければ誰かが考えなければならないでしょうthanks
ジェシー・バーシク

2
@JessTelford Satisfy Anyは機能しており、スペルが間違っていSatisify Anyます。それがあなたにとってうまくいかなかった理由かもしれません。
BlueBird

1
保護されていない(他のすべてが保護されている)単一のファイルを<Files>セクションで同じにする必要がありました
Nick

これは私にとっては機能しません-ユーザー名とパスワードを要求するパスワードモーダルを取得します。FirefoxとWindows 7を使用しています...
ItMeDom 2014年

36

RageZの答えに加えて、私はこれをサーバーディレクティブで使用しました:

<Directory /var/www/protected/>
     AuthType Basic
     AuthName "Production"
     AuthUserFile /path/to/.htpasswd
     Require valid-user
</Directory>

<Directory /var/www/protected/unprotected>
     Satisfy Any
</Directory>

驚くばかり。RageZ、ありがとう!


9

.htaccessこのディレクティブを使用して、目的のサブディレクトリに新しいを作成するだけです。

Allow from all

あなただけであなたのIPに制限することができます:

Allow from x.x.x.x

参照:http : //httpd.apache.org/docs/current/mod/mod_access_compat.html


「Allow from all」と「Satisfy Any」の代わりに「Require all granted」を指定するとうまくいきました。これら2つは私にとってはうまくいきませんでした。私はApache 2.4を使用しています。
endo64

1

認証を上書きする別の.htaccessファイルをサブディレクトリに追加する必要があります。.htaccessは上にカスケードします。つまり、現在のフォルダーを調べてから、1つ上のレベルに移動します。


4
たまたま構文を知っていますか?コンセプトは理解していますが、実装方法がわかりません。
justinl 2009

あなたが現在のものを削除し、何の権限を使用したい場合は、単にの.htaccessという名前の空のファイルに置き換える
Gaʀʀʏ

3
@Garryは.htaccessカスケードが機能する方法ではなく、オプションを明示的にオーバーライドする必要があります。
William Denniss 2013年

1

次に、サイトのメイン.htaccessファイルからの基本認証でサブディレクトリ「foo」を許可する方法を示します。

AuthType Basic
AuthName "Password Required"
AuthUserFile /dir/.htpasswd
Require expr %{REQUEST_URI} =~ m#^/foo/#
Require valid-user

注:これはApache 2.4で機能します。以前のバージョンでは確認していません。


0

htaccess認証から特定のディレクトリを防止したい場合は、上部のhtaccessファイルで次のコードを使用できます。

AuthType Basic AuthName "Enter Pass" AuthUserFile /home/public_html/.htpasswd /*PATH TO YOUR .htpasswd FILE*/ Require valid-user SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow Order allow,deny Allow from env=allow

また、複数のディレクトリを防止したい場合は、

SetEnvIf Request_URI "(/DIRECTORY_NAME/)$" allow

多くのディレクトリと同じくらい、htaccess防止から削除したいです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.