2017-11-19 1 views
2

몇 달 전, 일부 Classic ASP 응용 프로그램이 이상한 방향으로 리디렉션되고 있다고 언급했습니다. 이전에 파일 (사용자가 로그인 한 가정 - 쿠키를 사용하여) default.asppage.asp에서 리디렉션하는 것처럼 , 지금 물론 404 오류가 발생합니다 domain.com/page.asp,default.asp 같은 모습이 리디렉션, 그 "페이지"(페이지 때문이다. asp, default.asp)가 존재하지 않습니다.IIS의 새 리디렉션 형식

일반적으로 리디렉션은 Response.Redirect을 사용하여 수행됩니다.

또한 HTTPS가있는 경우에는 HTTPS가 추가 리디렉션되고 동일한 페이지로 전달되지만 HTTPS가 있는지 테스트 할 수 있습니다.

이 리디렉션 형식을 변경하지 못하도록하려면이 설정을 새로 구성해야합니까?

감사

업데이트합니다

(1) 내가 요청 페이지에서 사용하고있는 코드가, 우리는 유효한 쿠키가 있는지 확인하는 것입니다 :

if currentUserID = 0 then 
    conn.close 
    set conn = nothing 
    response.Redirect("default.asp") 
end if 

(2) Vanhosted Wombat에서 제안한대로 localhost을 통해 확인했습니다. 리디렉션이 발생하지 않는 것처럼 보입니다. 어쩌면 SSL이 그렇게하지 않았을까요?

(3) 추가 스크린 샷 :는 ('URL 요청'의 라인 참조)

enter image description here

+1

리디렉션이 작동하지 않는 경우 기존 ASP 코드에서 변경된 사항이나 구성의 IIS UrlReWriting 규칙으로 인해 문제가 발생하는 경우 "새 형식"이 없습니다. 규칙을 사용하지 않도록 설정 한 다음 리디렉션을 테스트합니다. – Lankymart

+0

이 형식의'domain.com/default.asp, page.asp'는 어떤 벨소리를 울립니까? – kneidels

+0

@Lankymart - OP 서버에 IIS url-rewrite 플러그인이 설치되어 있고 OP가 인식되지 않을 가능성이 있습니까? –

답변

0

를 다시 작성 IIS URL에 대한 모듈을 사용할 수 있습니다 SSL 채널에 사용자를 강제하는 방법에 약간의 혼란이있을 수 있으며 이는 통계를 혼동시킬 수 있습니다.

IIS 및 자바 스크립트의 사용자 지정 오류를 사용하여 HTTP에서 HTTPS로 사용자를 강제 설정할 수 있습니다. IIS는 사용자 요청을 거부하고 403.4 사용자 지정 오류 파일을 다시 보내므로 동일한 기본 URL이지만 HTTPS 프로토콜로 되돌려지기 때문에 통계 카운터가 시작되기 전에 실행됩니다.

다음 스크립트를 웹 사이트의 루트 폴더에 HTTPredirect.html로 저장하고 3 단계 지침을 따르십시오.

<!-- beginning of HttpRedirect.htm file --> 
<!-- 
'----------------------------------------------------------------------- 
' To force user to https port. 
' 
' To make this work: 
' 1. Put this html file in root of website in a file named HTTPredirect.html. 
' 2. Go to IIS admin, click on the web site and open Error pages. 
' Set 403.4 error to static file with path = HTTPredirect.html 
' 3. Still in IIS admin go to SSL setting and tick 'Require SSL' checkbox. Click Apply. 
' Now it will work - redirecting all http urls to https. 
'---------------------------------------------------------------- 
' 
--> 
<script type="text/javascript"> 
function redirectToHttps() 
{ 
var httpURL = window.location.hostname + window.location.pathname; 
var httpsURL = "https://" + httpURL + window.location.hash; 
var restOfUrl = window.location.href.substr(5); 
window.location = "https:" + restOfUrl; 
} 
redirectToHttps(); 
</script> 
<!-- end of HttpRedirect.htm file --> 

또한 '하이테크'를 가서 훨씬 더 능력을 가지고 있지만 그냥 HTTPS로 사용자를 전환해야 할 경우 과잉이다 IIS URL 재 작성을 설치할 수 있습니다.

유용하지 않은 경우 알려 주시면 답변을 삭제하겠습니다.

+0

고마워! 'SSL 필요'옵션을 활성화 한 후 'http'에서 사이트를 탐색하면 모든 페이지에서 '내부 서버 오류가 발생하여 페이지를 표시 할 수 없습니다.'라는 오류 메시지가 표시됩니다. 또한 IIS URL이 JS 해결책? 어떤 이유로 JS가 완전한 증거가 아닐 수도 있으므로 IIS 솔루션이 더 좋을 수도 있습니다. 또한 thay google이 SSL로 사이트를보고 싶어합니다. – kneidels

+0

html 파일을 가리 키도록 403.4 오류를 설정 했습니까? –

+0

예. C : \ Inetpub \ vhosts \ SITE.COM \ httpdocs \ HTTPredirect.html'에있는 "정적 파일의 내용을 삽입하십시오 ..."라는 상자를 처음 사용하면됩니다. "오류를 반환하려고합니다 ..."확인란을 선택하지 않았습니다. – kneidels