抱歉,如果这应该在 ServerFault 上,请在必要时移动/投票以移动。
我遇到了一个.htpasswd
文件问题
访问页面通常会按预期请求用户名和密码
然后,我可以按预期浏览站点并浏览页面,而无需在每次页面加载时都请求身份验证。
使用相同协议但使用 AJAX 访问同一服务器、相同基本 URL 上的页面会重新请求身份验证。
如果我随后进行身份验证,则 AJAX 请求成功,但主浏览器窗口上的身份验证不再有效,因此下一次刷新请求身份验证。
这只发生在服务器上许多虚拟主机中的一个虚拟主机上,所有这些虚拟主机都使用相同的.htpasswd
文件。身份验证请求位于全局 Apache 配置文件中,而不是特定于虚拟主机。
<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
唯一不起作用的虚拟主机中的文件如下。没有什么特别的,应该会影响它。
<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 请求需要用户再次进行身份验证?