これが 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 リクエストでユーザーが再度認証する必要があるのはなぜですか?