在web.config Umbraco中重写规则

时间:2018-03-26 19:42:41

标签: regex iis vue.js url-rewriting umbraco

我喜欢将Umbraco与Vue.js一起使用,并将所有路由留给Vue,这样我就可以制作SPA。我的目标是在web.config中编写一个IIS重写规则,以便为除/ umbraco之外的所有路由使用一个Umbraco模板。到目前为止我有这个

<rewrite>
      <rules>
        <rule name="Startview Templating">
          <match url="^(http(s)?:\/\/)?(www\.)?([A-Za-z0-9:._-]*)(\/(?!umbraco)([A-Za-z0-9:_-]*))?" />
          <action type="Rewrite" url="{R:0}?alttemplate=test" appendQueryString="true"/>
        </rule>
      </rules>
</rewrite>

这会在我拥有的每条路线上呈现相同的模板(测试),以便工作。但是当我进入/ umbraco时,我得到一个空白页面。我错过了什么?

由于

1 个答案:

答案 0 :(得分:0)

您应该能够为规则添加条件以排除路径,例如:

<conditions>
    <add input="{REQUEST_URI}" pattern="^/umbraco/" negate="true" />
</conditions>

在你的情况下,我会看起来像(我认为你可以简化匹配网址):

<rewrite>
  <rules>
    <rule name="Startview Templating">
      <match url="^(http(s)?:\/\/)?(www\.)?([A-Za-z0-9:._-]*)(\/(?!umbraco)([A-Za-z0-9:_-]*))?" />
      <conditions>
          <add input="{REQUEST_URI}" pattern="^/umbraco/" negate="true" />
      </conditions>
      <action type="Rewrite" url="{R:0}?alttemplate=test" appendQueryString="true"/>
    </rule>
  </rules>
</rewrite>