IIS 7.5에서 실행되는 PHP 웹 사이트가 있습니다. 이 사이트는 Windows 인증으로 보호되며 정상적으로 작동합니다.
사용자가 사이트를 방문하면 사용자 이름 / 암호를 묻는 메시지가 표시되고 인증되면 통과합니다. 사용자가 취소를 클릭하거나 비밀번호를 세 번 잘못 입력하면 401 오류 페이지가 표시됩니다.
이제 로그인 방법을 설명하는 사용자 정의 페이지를 표시하고 싶습니다. 오류 페이지로 이동하여 상태 코드 401.2를 선택하고 표시하려는 페이지를 가리 킵니다.
그런 다음 모두에게 맞춤 오류가 설정되어 있는지 확인하십시오. 그리고 카아 붐! 인증이 더 이상 작동하지 않으며 사용자에게 비밀번호 프롬프트가 표시되지 않습니다. 설명서에서 알 수 있듯이 Windows 인증은 먼저 401 응답을 보내어 작동 한 다음 브라우저는 사용자에게 공급자 자격 증명을 요청한 다음 다음에 수행 할 작업을 해결합니다.
여기서 일어나는 일 : 페이지를 처음 요청하면 IIS는 401 헤더를 보내려고하지만 web.config에 "401로이 페이지로 리디렉션합니다"라는 메시지가 표시됩니다. 인증 대신 리디렉션 페이지 만 제공합니다.
나는 401, 401.1, 401.2를 대체하려고 시도했지만 아무런 차이가 없었습니다.
내가 뭘 잘못하고 있으며 사용자 인증 오류에 대한 맞춤 페이지를 제공하는 방법은 무엇입니까?
ps 다음은 web.config입니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="500" subStatusCode="-1" />
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="401" subStatusCode="-1" />
<error statusCode="401" subStatusCode="2" prefixLanguageFilePath="" path="/not_restricted/401.htm" responseMode="ExecuteURL" />
<error statusCode="404" prefixLanguageFilePath="" path="/not_restricted/404.htm" responseMode="ExecuteURL" />
</httpErrors>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
<system.web>
<identity impersonate="false" />
<customErrors defaultRedirect="http://www.myserver.com/not_restricted/500.htm" mode="Off">
</customErrors>
</system.web>
</configuration>