Apache 通过.htaccess文件进行密码保护:在一台服务器上工作;拒绝访问而不询问另一个服务器的密码

Apache 通过.htaccess文件进行密码保护:在一台服务器上工作;拒绝访问而不询问另一个服务器的密码,apache,.htaccess,http-authentication,Apache,.htaccess,Http Authentication,我需要使用.htaccess文件对查询字符串包含fn=ass的网站上的所有URL进行密码保护。例如,应保护此URL: 我在运行XAMPP1.8.4和Apache2.4.10的Win7开发工作站上进行了这项工作 然而,我在运行Apache2.4.7的Media Temple上的Ubuntu14.04 VPS上尝试了完全相同的.htaccess指令,但它不能正常工作 我可以看到Apache在正确的URL上进行了匹配,因此该部分工作正常-但是浏览器不会提示我输入密码。我只是在尝试加载这些URL时遇到了

我需要使用.htaccess文件对查询字符串包含fn=ass的网站上的所有URL进行密码保护。例如,应保护此URL:

我在运行XAMPP1.8.4和Apache2.4.10的Win7开发工作站上进行了这项工作

然而,我在运行Apache2.4.7的Media Temple上的Ubuntu14.04 VPS上尝试了完全相同的.htaccess指令,但它不能正常工作

我可以看到Apache在正确的URL上进行了匹配,因此该部分工作正常-但是浏览器不会提示我输入密码。我只是在尝试加载这些URL时遇到了一个未经授权的错误。Apache错误显示:

此服务器无法验证您是否有权访问请求的文档。您提供了错误的凭据(例如,密码错误),或者您的浏览器不了解如何提供所需的凭据

这是我的完整的.htaccess文件,只是稍加修改。忽略WordPress的内容;相关部分是

我已经尝试/检查/排除的事情:

文件/var/www/vhosts/example.com/mysite.htpasswd确实存在,可读,并且确实包含一个名为callcenter的用户条目。但是,这似乎没有什么区别——如果我将此路径更改为不存在的文件,或者甚至完全注释掉AuthUserFile行,行为将保持不变

此vhost的.conf文件将AllowOverride All授予站点的webroot目录

我已经尝试重新启动Apache,这对于.htaccess文件来说是不必要的,但我尝试了

将Require user callcenter更改为Require valid user无济于事

有什么想法吗?奇怪的是,它可以在XAMPP中工作,但不能在Media Temple服务器上工作

早些时候,我对整个站点进行了密码保护,这很好——尽管这是在.conf文件中完成的,而不是在.htaccess文件中完成的,并且是一个更简单的情况,只是在指令中插入了几行,没有任何条件。这些行当前已从.conf文件中注释掉,因此它们不应干扰我在.htaccess文件中尝试执行的操作

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

##
# Password-protect assessment result URLs
##

<IfModule mod_rewrite.c>

    RewriteEngine On

    # First, set an environment variable to true if the current URL is a request
    # for an assessment results page.

    # We can't use SetEnvIf for this, because it can't examine the querystring.

    RewriteCond %{QUERY_STRING} fn=ass
    RewriteRule .* - [E=require_auth:true]

    # Configure HTTP-Auth

    AuthType Basic
    AuthName "Password Required"
    AuthUserFile /var/www/vhosts/example.com/mysite.htpasswd

    # Satisfy the request if the "callcenter" user is logged in, OR if
    # require_auth is untrue

    Order Deny,Allow
    Deny from all
    Satisfy any
        Require user callcenter
        Allow from env=!require_auth

</IfModule>