요청 된 URL에서 추가 '/'문자를 제거 할 IIS 설정이 있습니까?
-
03-07-2019 - |
문제
일반적인 문제 :
우리는 IIS 웹 서버에 다음과 같이 형식화 된 URL이 있습니다.
우리는 또한 이와 같은 URL이 들어오고 있음을보고 있습니다.
사용자 에이전트가 Internet Explorer 일 때 2 개의 다른 페이지로 해결되므로 캐시에서 해결해야 할 때 콘텐츠를 두 번 다운로드하기 때문에 추가 경로 문자를 제거하고 싶습니다.
이것이 URL에 라이팅 모듈과 같은 문제로 해결해야 할 문제인지 또는 구성 설정이 있는지 확실하지 않습니다.
해결책
문제는 II가 아닌 IE와 관련이 있다고 생각합니다.
URL 재 작성은 일반적으로 URL을 매핑하는 프로세스를 나타냅니다. http://example/shoes/clarkes
에게 http://example/shoes.aspx?maker=clarkes
브라우저가 알지 못하도록 서버에서.
당신이해야 할 일은 브라우저를 리디렉션하는 것입니다. http://www.server.com//page.aspx
에게 http://www.server.com/page.aspx
사용 a 301 HTTP 응답 코드.
이론에 의하면:
ASP.NET을 사용하는 것처럼 보이면 가장 투명한 방법은 다음을 작성하는 것입니다. httpmodule 요청 된 URI에서 이중 슬래시를 확인하고 리디렉션을 수행합니다.
가장 쉬운 방법은 Global.ascx. (CS | VB)에 일부 코드를 넣는 것입니다. Beginrequest.
어느 쪽이든, 검사를 수행하는 코드는 동일합니다.
실제로 :
IIS 또는 ASP.NET은 볼 수있는 기회를 얻기 전에 이중 "/"를 삼키는 것일 수 있습니다. IIS라면 IIS 앞에 프록시를 사용해야 할 수도 있습니다. ASP.NET이라면 ISAPI 확장 그것은 당신을 위해 일을 할 것입니다.
다른 옵션
당신도 할 수 있습니다
- 대부분의 개별 리소스를 HTML 컨텐츠와 별도로 캐시 할 수 있도록 페이지를 분할하십시오.
- 추가 슬래시를 넣을 필요가 없다는 사용자에게 교육하십시오.
다른 팁
링크를 수정하십시오!
하드 코딩 또는 스크립트가 생성 된 자신의 사이트에 잘못된 링크가 있기 때문에 이중 슬래시가 표시 될 가능성이 높습니다. 연결하는 대본으로 실수 로이 작업을 수행하는 것은 쉽습니다. http://example.com/
+ /page.aspx
. 이러한 유형의 연결에주의를 기울이십시오!
IIS는 추가 슬래시를 정리하므로 ASP.NET 코드 또는 httpmodule로 해결할 수 없습니다. 여분의 슬래시는 IIS 로그 파일로 만들지 않습니다. IIS7과 Telnet을 사용하여 테스트했으며 로그 또는 ASP.NET에 추가 슬래시를 얻을 수 없었습니다.
원래 질문에 IE 만 포함되는 이유는 확실하지 않습니다. IE와 FF는 모두 URL에서 추가 슬래시를 허용하고 전송하는 것처럼 보이지만 패킷 스니핑을 사용하여 확인하지 않았습니다.