我知道有很多关于如何将非 www 重定向到 www 站点的示例,但我没有使用任何重写 utils/ISAPI。
在我的 Windows 2008R2 机器上,我在 IIS 中设置了几个站点。我为 www 和非 www 版本设置了主机头。前几个站点运行良好。如果您尝试访问非 www 站点,则会自动将您重定向到 www 版本。
据我记得,除了添加适当的主机头之外,我不需要做任何特别的事情——不要搞乱重写/ISAPI。
为了使它正常工作,我在服务器管理器方面缺少什么?
我知道有很多关于如何将非 www 重定向到 www 站点的示例,但我没有使用任何重写 utils/ISAPI。
在我的 Windows 2008R2 机器上,我在 IIS 中设置了几个站点。我为 www 和非 www 版本设置了主机头。前几个站点运行良好。如果您尝试访问非 www 站点,则会自动将您重定向到 www 版本。
据我记得,除了添加适当的主机头之外,我不需要做任何特别的事情——不要搞乱重写/ISAPI。
为了使它正常工作,我在服务器管理器方面缺少什么?
我想有两种方法。一种是通过 IIS 管理器创建重写规则。
另一种是设置 web.config 的 system.webserver 部分,如下所示:
<system.webServer>
<rewrite>
<rules>
<clear/>
<rule name="Redirect Non WWW to WWW" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9]+)$" />
</conditions>
<action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" />
</rule>
<!--<rule name="Default Document" stopProcessing="false">
<match url="(.*)default.aspx"/>
<action type="Redirect" url="{R:1}" redirectType="Permanent"/>
</rule>-->
</rules>
</rewrite>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
<httpErrors errorMode="Custom"/>
</system.webServer>