- соответствует URL, содержащий строку - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу перенаправить каждый URL, содержащий определенную строку, на https://example.com/. Я использую IIS с HTTP Redirect, установленным , и я добавил правило в свой файл Web.config.

 <httpRedirect enabled="true" exactDestination="true" httpResponseStatus="Found">
    <add wildcard="*" destination="https://example.com/" />
 </httpRedirect>

Проблема в том, что wildcard="*" работает, но wildcard="*foo*" не будет перенаправлять URL-адреса, содержащие foo, такие как https://localhost/?foo=true.

Как я могу заставить его работать с подстановочными знакамикроме "*"?

1 Ответ

0 голосов
/ 11 декабря 2018

Мне удалось сделать это следующим образом https://serverfault.com/questions/386573/how-to-redirect-an-specific-url-with-specific-variables-in-iis.

Он использует модуль UrlRewrite вместо HttpRedirect.

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="MyRule" patternSyntax="ECMAScript" stopProcessing="true">
          <match url="^folder/Default.aspx$" />
          <action 
              type="Redirect" 
              url="folder/Default.aspx?&amp;variable1=ffff&amp;variable2=gggg" 
              appendQueryString="false" 
              redirectType="Found" /> 

          <conditions logicalGrouping="MatchAny">
            <add input="{QUERY_STRING}" 
                 pattern="^&amp;variable1=eeee&amp;variable2=aaa$" />

            <add input="{QUERY_STRING}" 
                 pattern="^variable1=eeee&amp;variable2=aaa$" />
          </conditions>
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...