3

我有一臺配置了基本身份驗證和LDAP的Web服務器。通常,我可以使用包含所有3個瀏覽器的英文字母的用戶名登錄。但是,如果用戶名包含特殊字符(例如RÈMWÉB等德語名稱),則Web服務器將返回401,並且會再次彈出認證,即apache無法驗證。基本身份驗證用戶名中的特殊字符不適用於Chrome,但適用於IE和Firefox

檢查apache access.log後,我可以告訴我,當我從firefox和chrome登錄時,編碼看起來不一樣。這種編碼是由瀏覽器還是由Web服務器決定的?我認爲這是瀏覽器導致事情與Firefox正常工作。我在哪裏可以設置鉻編碼方案?

另外,爲了確認它是瀏覽器的事情,我可以看到發送的授權頭對於Firefox和Chrome中的同一用戶而言是不同的。很顯然,瀏覽器不使用相同的方案對頭進行編碼。有什麼建議麼 ?

更多的調試表明firefox(和IE)使用ISO8859-1進行編碼,chrome使用UTF-8。

即使Apache Web服務器嘗試多次使用(如果ISO8859-1返回401,它應該再次嘗試使用UTF-8),我仍然可以。瀏覽器或Web服務器解決方案應該都可以。

+0

嘗試使用Apache指令設置默認的'元charset',讀這讓我知道,如果它的工作https://開頭httpd.apache.org/docs/current/mod/core.html#adddefaultcharset – zatamine

回答

1

嘗試改變字符您的登錄頁面上設置使用ISO8859-1

<meta charset="ISO8859-1" /> 
+0

我們沒有登錄頁面。直接使用認證彈出。如果登錄成功,apache將重定向到主頁。 – Crusaderpyro

+0

你試過這個https://stackoverflow.com/questions/913869/how-to-change-the-default-encoding-to-utf-8-for-apache? – Preston

+0

Apache中的此設置用於響應內容類型而不是請求標頭。 – Crusaderpyro

相關問題