我为Apache上的基本身份验证添加了用户名和密码,我想为我的用户提供Unicode AuthName字符串。我的httpd.conf看起来像这样:
<Location "/">
AuthType Basic
AuthName "Some Unicode Here"
AuthUserFile /somewhere/htpasswd
Require valid-user
</Location>
但是“Some Unicode Here
”在我的浏览器中似乎总是垃圾。如何使其正常显示?
答案 0 :(得分:4)
您可能无法使其正常工作,缺少浏览器支持是主要问题,请参阅What character encoding should I use for a HTTP header?。
AuthName
在WWW-Authenticate
标题中显示为领域:
WWW-Authenticate: Basic realm="Some Unicode Here"
一些快速实验表明:
AuthName
字符串进行编码,它按原样发送=?utf-8?B?U29tZSBVbmljb2RlIEhlcmUK?=
(我建议mod_auth_tkt
作为基于cookie的替代基本身份验证,如果你有选项,它有一个drop-in htpasswd样式perl脚本,并设置REMOTE_USER
,你只需要滚动你自己的形式。)
答案 1 :(得分:2)
我找到了包含突出字符的.htaccess AuthName的正确解决方案:
使用文本编辑器或&#34; iconv&#34;以正确的编码保存文件。
在Sublime 3中,我使用了文件 - &gt;使用编码保存 - &gt;西方ISO-8859-1