谁能帮助我整合这些IIS重写规则?

时间:2018-09-05 07:30:48

标签: iis url-rewriting url-rewrite-module

我已经制定了一些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 :(得分:0)

这将照顾到所有人。

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