.htaccess中的AuthName未显示在Chrome中



我正试图用Apache2的.htaccess文件来保护一个网站。它运行良好,但用AuthName行指定的消息在Chrome上不可见(但在Firefox上可见!(。我应该怎么做才能让它在Chrome上可见?

这是我的.htaccess文件

AuthType Basic
AuthName "Restricted Access"
AuthFile "/etc/apache2/.htpasswd"
Require valid-user

在Firefox上,弹出窗口告诉

该网站。。。正在请求您的用户名和密码。该网站称:"受限访问">

但在Chrome上,它只告诉

登录

我应该怎么做才能让它在Chrome上可见?

你什么都做不了。

浏览器决定是否要以某种方式向用户显示这些信息。


Apache文档中使用的措辞已经暗示了这一点(我强调(-

https://httpd.apache.org/docs/2.4/mod/mod_authn_core.html#authname:

为AuthName提供的字符串将显示在大多数浏览器提供的密码对话框中。

https://httpd.apache.org/docs/2.4/howto/auth.html#gettingitworking:

AuthName指令设置要在身份验证中使用的Realm。王国有两大功能。首先,客户端经常将此信息作为密码对话框的一部分显示给用户。其次,客户端使用它来确定为给定的已验证区域发送什么密码。

这里有一个变通方法,可以在登录尝试失败后使用自定义错误文档功能为不幸的访问者提供一些信息:

将这一行放入.htaccess文件:

ErrorDocument 401 YYYY-MM-DDTHHMM-Site-update-under-way-Estimate-30-min

登录失败或取消后,似乎会显示连续文本。不允许使用句点(.(或冒号(:(。当然,它应该代表一个有效的文件名,但如果用户由于登录失败而无法访问public_html,那么文件可能无论如何都无法提供。如果你能提供一个正确的401错误页面,你可以在那里解释情况。

(编辑1(也许这种行为是我对共享托管的好奇。那里的共享服务器似乎是nginx;被强制";接受.htaccess指令。

(编辑2(Apache 2.4服务器也证实了这种行为

最新更新