【发布时间】:2017-09-24 16:01:16
【问题描述】:
我有一个配置了基本身份验证和 LDAP 的 Web 服务器。通常,我可以使用包含所有 3 个浏览器的英文字母的用户名登录。但是,如果用户名包含特殊字符(例如 RÈM WÉB 等德国名称),Web 服务器会返回 401,我会再次弹出身份验证,即 apache 无法验证。
检查 apache access.log 后,我可以看出当我从 firefox 和 chrome 登录时,编码似乎不同。这种编码是由浏览器决定的还是由网络服务器决定的?我认为这是浏览器导致的,Firefox 可以正常工作。我在哪里可以在 chrome 中设置此编码方案?
另外,为了确认它是浏览器的问题,我可以看到在 Firefox 和 Chrome 中发送的授权标头对于同一用户是不同的。显然,浏览器没有使用相同的方案对标头进行编码。有什么建议吗?
更多调试表明 firefox(以及 IE)使用 ISO8859-1 进行编码,而 chrome 使用 UTF-8。
即使 Apache Web 服务器多次尝试使用(如果 ISO8859-1 返回 401,它应该使用 UTF-8 再次尝试),我也可以。浏览器或网络服务器解决方案都可以。
【问题讨论】:
-
尝试使用 apache 指令设置默认
meta charset,阅读此内容并告诉我它是否有效 httpd.apache.org/docs/current/mod/core.html#adddefaultcharset
标签: google-chrome authentication firefox google-chrome-devtools basic-authentication