3

기본 인증 및 LDAP로 구성된 웹 서버가 있습니다. 일반적으로 3 개의 브라우저 모두에 영어 알파벳이 포함 된 사용자 이름으로 로그인 할 수 있습니다. 그러나 사용자 이름에 특수 문자 (예 : RÈM WÉB와 같은 독일어 이름)가 있으면 웹 서버는 401을 반환하고 인증 팝업을 다시 표시합니다. 즉, apache의 유효성을 검사하지 못합니다.기본 인증의 특수 문자 username은 Chrome에서 작동하지 않지만 IE 및 Firefox에서 작동합니다.

아파치 access.log를 확인한 후, 나는 firefox와 chrome에서 로그인 할 때 인코딩이 다른 것처럼 보일 수 있습니다. 이 인코딩은 브라우저 또는 웹 서버에 의해 결정됩니까? 파이어 폭스에서 브라우저가 잘 작동한다고 가정합니다. 크롬에서이 인코딩 스키마는 어디에서 설정할 수 있습니까?

또한 브라우저의 확인을 위해 Firefox와 Chrome에서 보낸 동일한 인증 헤더가 다른 것을 확인할 수 있습니다. 분명히 헤더는 브라우저에서 동일한 스키마를 사용하여 인코딩되지 않습니다. 어떤 제안?

더 많은 디버깅은 파이어 폭스 (또한 IE)가 인코딩에 ISO8859-1을 사용하고 크롬이 UTF-8을 사용한다고 알려줍니다.

아파치 웹 서버가 (ISO8859-1이 401을 반환하면, UTF-8로 다시 시도해야합니다.) 여러 번 시도해도 괜찮을 것입니다. 브라우저 또는 웹 서버 솔루션이 좋을 것입니다.

+0

시도를 사용하도록 로그인 페이지에서 문자 집합을 변경해보십시오,이를 읽고 작업에 https를인지 알려 : // httpd.apache.org/docs/current/mod/core.html#adddefaultcharset – zatamine

답변

1

아파치 지시어를 사용하여 기본`메타 charset`을 설정 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

아파치의이 설정은 요청 헤더가 아닌 응답 내용 유형 용입니다. – Crusaderpyro

관련 문제