IIS rewrite map condition
의 여러 조합으로 상위 30 개 Google 히트 수를 읽었지만 microsoft.com 사이트 또는 다른 곳에서 괜찮은 문서를 찾을 수 없습니다.IIS7의 다시 쓰기 맵 - 선택적으로 일치하는 후행 슬래시가 포함되도록하는 방법?
나는 IIS7에서 후미 슬래시가 있는지 여부에 관계없이 처리하고 싶은 재 작성 맵을 가지고 있습니다. 따라서 www.foo.com/bar
과 www.foo.com/bar/
이 모두 규칙과 일치해야합니다.
<rewriteMap name="ShortURLs">
<add key="/terms" value="/en-us/terms-and-conditions/"/>
<add key="/privacy" value="/en-us/privacy-and-cookies/"/>
<add key="/buy" value="/en-us/where-to-buy/"/>
<add key="/terms/" value="/en-us/terms-and-conditions/"/>
<add key="/privacy/" value="/en-us/privacy-and-cookies/"/>
<add key="/buy/" value="/en-us/where-to-buy/"/>
</rewriteMap>
:
<rewrite>
<rewriteMaps>
<rewriteMap name="ShortURLs">
<add key="/terms" value="/en-us/terms-and-conditions/"/>
<add key="/privacy" value="/en-us/privacy-and-cookies/"/>
<add key="/buy" value="/en-us/where-to-buy/"/>
</rewriteMap>
</rewriteMaps>
<rules>
<rule name="Short URL redirects">
<match url="^/?(.+)/?$" />
<conditions>
<add input="{ShortURLs:{REQUEST_URI}}" pattern="(.+)"/>
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="true"/>
</rule>
</rules>
</rewrite>
지금이 내가 할 찾을 수있는 유일한 방법은 /terms/
경기 재 작성 맵의 첫 번째 키가 읽도록지도를 복제하는 것을 제외하고는 완벽하게 잘 작동합니다 이것은 내가 처음부터 정규 표현식을 사용하고 있다는 점을 감안할 때, 우스꽝스럽게 우아하지 않은 것처럼 보입니다. 조건 입력 또는 조건 패턴에 /?
을 추가해도 작동하지 않는 것 같습니다. 나는 내가 거기에 댓글을 달았으로, (Using Rewrite Maps in URL Rewrite Module에서 인용) 만 사용할 수 없습니다 정규 표현식을 언급 IIS7 Rewrite Map Regex?에 the answer을 보았다
, 이것은 "이 오히려 도매보다, 텍스트 전에 제공되는 구체적인 예와 관련 보인다 결코 일할 수 없다 ".
무엇이 누락 되었습니까? 이것을하기위한 수단이 있어야합니다. 나는 명백한 것을 놓치고 있는가?
Perfect. 고맙습니다! :) –