首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS 7规范URL重定向

IIS 7规范URL重定向
EN

Stack Overflow用户
提问于 2011-05-02 20:27:12
回答 3查看 10.8K关注 0票数 8

我想让一个网站总是在地址中有www,并通过IIS重写来强制执行它。

例如,test.com将变为www.test.com。

典型的重写规则示例如下:

代码语言:javascript
复制
<rule name="Canonical Host Name" stopProcessing="true">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTP_HOST}" negate="true" pattern="^www\.test\.com$" />
  </conditions>
  <action type="Redirect" url="http://www.test.com/{R:1}" redirectType="Permanent" />
</rule>

然而,这需要我输入我的网站的完整网址。它不适用于具有www.test.dev和www.test.stage等URL的开发和登台环境。

是否可以创建一个IIS重写规则来处理所有这些情况?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-03 02:00:21

您说得对,完整的网址需要在web.config中。不过,你还是有选择的。

您可以使用配置转换来使正则表达式与正确的environment.

  • There匹配,如果您将所有三个重写规则都包含在您的
  1. 中,这似乎没有任何坏处。听起来您的环境是隔离的,因此每个环境只会与其中一个规则相匹配。这可能会把你的web.config弄得乱七八糟,但并不可怕。--

我选择选项1。你可以在这里找到关于配置转换的信息:http://msdn.microsoft.com/en-us/library/dd465326.aspx

票数 1
EN

Stack Overflow用户

发布于 2011-08-06 04:22:35

我有另一个解决方案给你:

代码语言:javascript
复制
<rule name="Canonical domain name" 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>
票数 4
EN

Stack Overflow用户

发布于 2015-03-05 16:53:50

我还建议您在本地环境中测试的另一种变体:

添加到c:\Windows\System32\drivers\etc\hosts:的

127.0.0.1 www.example.com

  1. 在IIS管理器中,选择站点,然后右键单击->编辑绑定。cmd添加..然后运行iisreset

,->

  • 输入主机名:cmd

现在您可以在映射到本地主机的浏览器中使用www.example.com了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5857118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档