Может ли кто-нибудь помочь мне объединить эти правила переписывания IIS? - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть некоторые правила перезаписи IIS, и все работает нормально. Но я чувствую, что могу объединить их.

Вот мои правила:

<rule name="Blog - Advice - root" patternSyntax="ExactMatch" stopProcessing="true">
    <match url="advice" />
    <action type="Rewrite" url="https://mysite.wpengine.com/advice" />
</rule>

<rule name="Blog - Advice - root (with slash)" patternSyntax="ExactMatch" stopProcessing="true">
    <match url="advice/" />
    <action type="Rewrite" url="https://mysite.wpengine.com/advice" />
</rule>

<rule name="Blog - Advice" stopProcessing="true">
    <match url="^advice/?(.*)" />
    <action type="Rewrite" url="https://mysite.wpengine.com/advice/{R:1}" />
</rule>

Я хочу сопоставить следующие примеры:

  • /advice
  • /advice/ (следует переписать без косой черты)
  • /advice/sdfsdf
  • /advice/sdfsdf/ (следует переписать без косой черты)
  • /advice/sdfdsf/sdfds

Можно ли это сделать с 1 (или 2) маршрутами?

Если я оставлю второй, например, Wordpress (сайт, на который переписываю), выполнит редирект 301 на URL без косой черты, и я потеряю переписывание, так как URL снова изменился. (поэтому я в конечном итоге на mysite.wpengine.com/advice, что не так).

Так что мне нужно убедиться, что любые перезаписи не связаны с перенаправлением на конец целевого сайта.

Большое спасибо:)

1 Ответ

0 голосов
/ 26 сентября 2018

Это позаботится о них всех.

<rule name="Blog - Advice - ALL" stopProcessing="true">
    <match url="^advice(?:(?:/?(?:[^/]+))+)?" />
    <action type="Rewrite" url="https://mysite.wpengine.com/{R:0}" />
</rule>
...