2

これが ServerFault にある場合はお詫びします。必要に応じて移動/移動に投票してください。

.htpasswdファイルで問題が発生しました。

  • 通常、ページにアクセスすると、予想どおりユーザー名とパスワードが要求されます

    その後、期待どおりにサイトを閲覧し、ページの読み込みごとに認証を要求することなくページをナビゲートできます。

  • 同じサーバー、同じベース URL、同じプロトコルを使用して AJAX を使用してページにアクセスすると、認証が再要求されます。

    次に認証すると、AJAX 要求は成功しますが、メイン ブラウザー ウィンドウでの認証は有効ではないため、次の更新で認証が要求されます。

これは、サーバー上の多くの vhost のうちの 1 つの vhost でのみ発生し、それらはすべて同じ.htpasswdファイルを使用します。認証の要求は、グローバル Apache 構成ファイルにあり、vhost に固有のものではありません。

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All

    Order allow,deny
    Allow from all

    AuthUserFile /var/www/private/.htpasswd
    AuthGroupFile /dev/null
    AuthName "My Private Directory"
    AuthType Basic
    <Limit GET POST>
        require valid-user
    </Limit>
</Directory>

.htaccess唯一動作しない vhost 内のファイルは次のとおりです。それに影響する特別なことは何もありません。

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_URI} !.*\.(gif|png|jpe?g|ico|swf)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php?/=$1 [L,QSA] 
</IfModule>

したがって、私の質問は、AJAX リクエストでユーザーが再度認証する必要があるのはなぜですか?

4

0 に答える 0