1

我正在尝试从 domain.net 重定向到 www.domain.net。但是,我得到的只是 IIS 404 错误页面。

我的网络配置看起来像这样。但即使是 http 错误声明也被忽略了,我只得到 IIS 的 404 页面,而不是我指定的文件。

<system.webServer>
  <httpErrors errorMode="Custom" defaultPath="/404.html" defaultResponseMode="Redirect" existingResponse="Replace"/>
  <rewrite>
      <rules>
          <rule name="Redirect to WWW" stopProcessing="true">
              <match url=".*" />
              <conditions>
                  <add input="{HTTP_HOST}" pattern="^mylifelessons.net$" />
              </conditions>
              <action type="Redirect" url="http://www.mylifelessons.net/{R:0}"
              redirectType="Permanent" />
          </rule>
      </rules>
  </rewrite>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
  <remove name="UrlRoutingModule" />
  <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" preCondition="managedHandler" />
</modules>
<handlers>
  <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>

4

1 回答 1

0

从 domain.net 重定向到 www.domain.net 在您的注册商的域设置中更容易处理 - 将 www 指向您的 Azure DNS,并将您的根域转发到 www

如果您坚持使用重写规则,请使用 IIS URL 重写模块来帮助您创建锥形重写规则 - web.config 的输出将类似于:

        <rewrite>
        <rules>
            <rule name="CanonicalHostNameRule1">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTP_HOST}" pattern="^www\.test\.com$" negate="true" />
                </conditions>
                <action type="Redirect" url="http://www.test.com/{R:1}" />
            </rule>
        </rules>
    </rewrite>
于 2012-12-07T05:41:28.000 回答