AngularJS HTML5模式URL重写为www。版

时间:2015-04-12 04:08:50

标签: angularjs azure iis

我在Azure中托管我的AngularJS网站,但在我只想对www进行URL重写时遇到问题。版。我正在使用HTML5模式进行路由。

如果我有以下web.config并刷新页面,我会收到一条错误说明"您要查找的资源已被删除,名称已更改或暂时不可用。"

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.webServer>
<rewrite>
  <rules>
    <clear/>
    <rule name="WWW Rewrite" enabled="true">
      <match url="(.*)"/>
      <conditions>
        <add input="{HTTP_HOST}" negate="true" pattern="^www\."/>
      </conditions>
      <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent"/>
    </rule>
  </rules>
</rewrite>
  </system.webServer>
</configuration>

如果我按照以下方式离开我的web.config,我对刷新没有任何问题,但我无法重定向到www。我的网站版本:

<configuration>
    <system.web>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" />
</system.web>
  <system.webServer>
<rewrite>
  <rules>
    <rule name="Main Rule" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="/" />
    </rule>
  </rules>
</rewrite>
  </system.webServer>
</configuration>

我如何让两个场景一起工作?

1 个答案:

答案 0 :(得分:1)

尝试添加

<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />

到您的条件阻止。