source

일부 URL을 제외한 IIS URL 다시 쓰기 역할

lovecheck 2023. 9. 19. 21:13
반응형

일부 URL을 제외한 IIS URL 다시 쓰기 역할

HTTP to HTTPS를 사용하여 사이트에 대한 모든 요청을 다시 쓰는 URL 재작성에서 이 규칙을 얻었습니다.

<rule name="Force HTTPS" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
                </rule>

특정 URL을 다시 쓰거나 HTTP로 리디렉션하려면 이 역할에 다른 규칙이나 예외가 필요합니다.

그게 가능한가요?

HTTPS로의 리디렉션을 수행하지 않을 예외를 다음과 같이 추가 조건(해당 URL과 동일하지 않음)으로 추가할 수 있습니다.

<rule name="Force HTTPS" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll">
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^/noredirect/forthis/page\.aspx$" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^/noredirect/forthis/page-as-well\.aspx$" ignoreCase="true" />
        <add input="{REQUEST_URI}" negate="true" pattern="^/noredirect/forthis/page-as-well-too\.aspx$" ignoreCase="true" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>

Web.config의 예외 규칙 "NotSecurePage.ashx"를 https로 리디렉션하지 않는 경우:

<system.webServer>
<rewrite>
  <rules>
    <rule name="HTTP to HTTPS redirect" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
        <add input="{REQUEST_URI}" matchType="Pattern" pattern="\bNotSecurePage.ashx\b" ignoreCase="true" negate="true" /> <!-- Crystal não suporta imagens https.. Criando exceção para imagens de barcode, utilizadas no crystal -->
      </conditions>
      <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
    </rule>
  </rules>
</rewrite>
</system.webServer>

언급URL : https://stackoverflow.com/questions/13320614/iis-url-rewrite-role-except-some-urls

반응형