Isapi는 업그레이드를 2에서 3까지 다시 작성합니다 - 쿼리 문자열을 사용할 수 없습니까?

StackOverflow https://stackoverflow.com/questions/1088272

  •  23-08-2019
  •  | 
  •  

문제

조금 늦었지만 방금 Isapi Rewrite 버전 2에서 버전 3으로 업그레이드했습니다.

다음 스타일의 규칙에 문제가 있습니다.

RewriteRule ^/seo-friendly/(\?(.*))? /test/index.cfm?page=home&$2 

여기에서는 추가 쿼리 문자열 매개 변수가 다시 작성된 URL로 전달됩니다.

이것은 IR2에서 잘 작동했지만 IR3에서 추가 매개 변수를 전달하지 못합니다. 각 버전의 Regex Tester .Exe 유틸리티가 두 개를 가지고 있으므로 시도했습니다.

내가 입력하면 /seo 친화적/? hello = world, IR2의 Regex Tester가 말합니다 $ 1 :? hello = 세계 그리고 $ 2 : Hello = World완벽합니다.

그러나 IR3은 말합니다 $ 0 : /seo 친화적 / 그리고 $1 그리고 $2 비어 있습니다.

쿼리 문자열 변수에 액세스 할 수없는 것 같습니다.

문서에서 언급 된이 깃발을 찾았습니다.

o (정상화)

처리 전에 문자열을 정규화합니다. 정규화에는 URL 인코딩, 불법 문자 등의 제거가 포함됩니다. 또한 URI의 IIS 정규화는 쿼리 문자열을 완전히 제거합니다. 따라서 쿼리 문자열이 필요한 경우 정규화를 사용해서는 안됩니다.

그러나 나는이 깃발을 내 규칙에 대해 설정하지 않았습니다. 이 (명백한) 정규화를 중지하도록 설정할 수있는 전역 규칙이 있습니까?

도움이 되었습니까?

해결책

Isapi Rewrite가 Apache의 mod_rewrite와 거의 동일하게 작동하면 QSA 플래그를 설정하면됩니다.

RewriteRule ^/seo-friendly/$ /test/index.cfm?page=home [QSA]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top