1

次の .htaccess で保護されたフォルダー www.mydomain.com/exemple を考えてみましょう。

.htaccess

AuthUserFile /root/FTPname/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Restricted Access"
AuthType Basic
require valid-user

ユーザーが特定の Cookie を持っている場合にのみ、例のフォルダーへのアクセスを許可するか、エラーを発生させます (次の [F] フラグを使用)。次に、次のコードを実装しました。

.htaccess

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !CookieName=CookieValue
RewriteRule .* - [F,L]

AuthUserFile /root/FTPname/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Restricted Access"
AuthType Basic
require valid-user

問題は、Cookie を使用せずに例のフォルダーを読み込むと、最初に認証プロセスが行われることです...最初にエラーを発生させたいと思います。誰でも知っていますか?

4

1 に答える 1

1

新しい環境変数で「Satisfy any」を試してください。ここでは 2 つの手法を示します: 仮想ホストによる .htaccess 基本認証? 1 つは SetEnvIf を使用し、もう 1 つは RewriteRule を使用して変数を設定します。SetEnvIf は Cookie を検出できないため、RewriteRule が必要になります。しかし、私の共有ホスティング プラットフォームで、RewriteRule が "Satisfy any" で再生できないことがわかりました。それが機能する場合、次のようになります。

RewriteEngine On
RewriteCond %{HTTP_COOKIE} !CookieName=CookieValue
RewriteRule .* - [L,E=DENY:1]

AuthUserFile /root/FTPname/www/.htpasswd
AuthGroupFile /dev/null
AuthName "Restricted Access"
AuthType Basic

Order Deny,Allow
Satisfy any
Deny from all
Require valid-user
Allow from env=!DENY

参照: htaccess は基本認証から 1 つの URL を除外します

保護しているページには、ページ自体が認証要求をトリガーしないときに認証要求をトリガーする画像、スタイルシートなどが含まれていないことに注意してください。

于 2013-02-17T15:08:50.987 に答える