/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

ASP.NET MVC如何实现带www域名重定向到不带www顶级域名

2015-05-03 十有三 0 浏览:1万+ .NET技术 ASP.NET MVC

本文记录了在ASP.NET MVC项目中,如何通过配置文件,实现将带www的二级域名301重定向到顶级域名的方法。通过web.config配置文件的设置,可以解决虚拟机无法直接设置IIS的问题。不过需要注意的是,虚拟机上必须要安装URL重写工具,否则就无法实现重定向功能,不过一般服务器商都是会安装的。

这里建议先看下这3篇文章和资料,了解下IIS的URL重写工具模块的相关信息,这样有助于我们理解在配置文件中设置重写的属性节点:

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • URL Rewrite Module Configuration
  • IIS URL 重写模块

首先看下我的ASP.NET MVC项目中的web.config配置:

<rewrite>
  <rules>
    <rule name="www重写" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAny">
        <add input="{HTTP_HOST}" pattern="^www.shiyousan.com$" />
      </conditions>
      <action type="Redirect" url="https://shiyousan.com/{R:0}" />
    </rule>
  </rules>
</rewrite>

<rule>节点主要设置规则名称,和匹配规则的模式语法,默认是使用正则表达式匹配,如果需要设置其他语法,则要设置patternSyntax属性,一共有三个值:ECMAScript(正则表达式),Wildcard(通配符),ExactMatch(完全匹配)


<match url=".*" />节点是规则模式,主要用于匹配请求的URL,这里的url就是要使用正则表达式来进行匹配,只有所请求的URL的路径符合匹配,后面的规则才有效果。具体可以看这篇文章:详解IIS中URL重写工具的匹配URL-规则模式(rule patterns)


<conditions>节点是规则条件,主要用于过滤URL中的主机/参数/端口等部分,由于我们是要将www.shiyousan.com跳转到顶级域名shiyousan.com,所以这里input属性设置为{HTTP_HOST}  (表示匹配主机的服务器变量),匹配模式的语法属性pattern为"^www.shiyousan.com$。具体可以看这篇文章:详解IIS中URL重写工具的规则条件(Rule conditions)


最后是<action>节点,这个节点主要是设置要进行的操作,type属性一共有三个,None(无),Rewrite(重写),Redirect(重定向),CustomResponse(自定义响应),AbortRequest(终止请求),由于我们要做301重定向,所以设置的type="Redirect",并且设置要重定向的URL为:https://shiyousan.com/{R:0}。 另外关于{R:0},其实是属于正则的反向引用的语法,可以参考这篇文章:详解IIS中的重写工具下关于操作重定向URL中的{R:N}与{C:N}。


另外可以参考与本文相关的一篇文章:ASP.NET 301跳转或者进行301重定向/转向的方法

 


作者:十有三

出处:https://shiyousan.com/post/635662476800272408

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: 详解IIS中URL重写工具的匹配URL-规则模式(rule patterns)
  • 下一篇: ASP.NET MVC网站发布后出现“/”应用程序中的服务器错误。

相关文章
  • ASP.NET 在.aspx页面中使用<script runat="server"></script>标记
  • 解决IIS ASP.NET 网站发布后出现错误 Unable to connect to any of the specified MySQL hosts
  • HttpException (0x80004005): 无法连接到 SQL Server 会话数据库。
  • 解决ASP.NET MVC AllowAnonymous属性无效导致无法匿名访问控制器的问题
  • Visual Studio 2013 社区版和速成版之间的区别
  • 命名空间System.Web中不存在类型或命名空间名称“Mvc” 是否缺少程序集引用?

文章分类

.NET技术 123 数据库 24 Web前端 21 网站建设运维 37 操作系统与应用 66 程序猿日常 11 开发工具 12 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 服务器 搞笑娱乐 好文分享 软件应用 生活知识 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
  • VS重构重命名的快捷键

推荐文章

  • 奇怪的问题:ASP.NET MVC submit提交表单传入的模型实体对象为null和空值
  • (恶搞)程序搞笑:程序员和科比搞笑对话
  • 此设备上的其他用户使用了此Microsoft帐户,无法在此处进行添加
  • C# 由数字1、2、3、4、5、6六个数字共可组成多少个没有重复数字的四位数,输出这些数据并统计个数。
  • 研究百度分享自定义URL的BUG

友情链接

  • Passingwind的博客
  • 码友网

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号
闽公网安备 35020302035102号