/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • 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 MVC 5 学习笔记:使用HandleErrorAttribute处理异常
  • Internet Explorer 无法显示此源及此源包含代码错误
  • Visual Studio Community 2013 (社区版)的一些相关问答
  • 总结Visual Studio Community 2013的特点与其他VS版本的区别
  • ASP.NET 301跳转或者进行301重定向/转向的方法
  • C#解决IIS域名批量绑定

文章分类

.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重构重命名的快捷键

推荐文章

  • MongoDB小技巧:在命令提示符中通过任意路径执行MongoDB命令
  • 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
  • Windows Server 2012 提供程序NtpClient:在尝试联系它8次以后没有收到来自手动配置的对等机ntp1.cloud.aliyuncs.com,0x1的有效响应
  • 个人对C#控制台应用程序在运用方面的总结
  • ASP.NET MVC AJAX调用没有反应和返回结果

友情链接

  • Passingwind的博客
  • 码友网

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