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

ASP.NET 301跳转或者进行301重定向/转向的方法

2014-06-22 十有三 3 浏览:1万+ .NET技术 ASP.NET

网站的域名如果进行更改,一般要对原有的域名进行301跳转操作,也叫做301重定向和301转向,这样对于SEO优化是十分有利的,还可以保证更换后的新域名能被各个搜索引擎收录进去。本文介绍了如何在ASP.NET 网站或者ASP.NET MVC网站中利用配置文件设置对全站URL进行301跳转,该跳转是所有的URL进行跳转(包含静态页面,纯HTML文件,各种一般处理程序,所有的图片链接),此方法对网站全部页面有效。

具体代码如下(在ASP.NET程序的Web.config中的system.webServer节点设置和添加<rewrite>节点):

  <system.webServer> 
    <rewrite> 
      <rules> 
        <rule name="WWW Redirect" stopProcessing="true"> 
          <match url=".*" /> 
          <conditions> 
            <add input="{HTTP_HOST}" pattern="^ywftest.com$" /> 
          </conditions> 
          <action type="Redirect" url="https://shiyousan.com/{R:0}" redirectType="Permanent" /> 
        </rule> 
      </rules> 
    </rewrite> 
  </system.webServer>

上面的代码中 <add input="{HTTP_HOST}" pattern="^ywftest.com$" />   这段代码,其中ywftest.com是原来的网站域名。而<action type="Redirect" url="https://shiyousan.com/{R:0}" redirectType="Permanent" />这段代码中,https://shiyousan.com是网站的新域名,也是旧域名要301跳转到的目标域名。将这段配置文件设置添加到程序的Web.config中,在搜索引擎打开的原域名地址都会自动调整到新域名的地址了。

跳转代码截图

需要注意的是,配置文件中的格式一定要和上面代码的一样,比如 pattern="^ywftest.com$",其中^$都是必须的,这是正则表达式匹配域名路径,而url=https://shiyousan.com/{R:0}中的{R:0}则是URL匹配规则的反向引用,具体可以看这两篇文章:

  1. IIS8如何安装和使用URL重写工具-URL Rewrite
  2. 详解IIS中的重写工具下关于操作重定向URL中的{R:N}与{C:N}

还有一点也要注意,如果出现元素 “system.webServer” 的子元素 “rewrite” 无效 的这个警告信息,这是由于以前的Visual Studio智能提示模式是不支持URL Rewrite 功能的,VS2013倒是正常。而且这个rewrite也只有在IIS7中才可以使用(其他版本的IIS可能要安装URL Rewrite模块功能)。

必须注意事项!!!

网站如果发布到IIS上,一定要检查IIS是否有安装URL Rewrite重定向模块,如果没有的话还需要在服务器的IIS上安装,否则网站将无法打开,这里点击进入官方的下载地址。

如果网站程序是在VS2013中调试的话,上面的配置可以看到是起作用的(使用的是IIS Express)并且不会报错,但是如果使用VS2010或者更低的版本,调试的时候上面的配置则无法起作用。

因为VS2010使用的是ASP.NET Development Server(ASP.NET 开发服务器),所以要么发布到IIS上测试,要么调试的时候不使用Visual Studio的开发服务器,而是用本地IIS服务器,前提是本地电脑上要安装IIS7,修改调试选项的地方在VS中项目下的Properties项目属性设置里,点击Web,下面就有选项了。这个错误可以看这篇文章:Visual Studio IntelliSense for URL Rewrite,还有的问答:The element > system.webServer' has invalid child > element 'rewrite'。

相关文章:

  • Windows虚拟主机与VPS如何实现301重定向(asp.net)
  • IIS7 下 的URL REWRITE规则

 


作者:十有三

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

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


  • 上一篇: .NET 4.5 使用async和await关键字调用异步方法
  • 下一篇: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

相关文章
  • C# string转换成DateTime?(字符串转换成可空日期类型)
  • ASP.NET中.aspx页面使用<script runat="server">标记无法输出"</script>"字符串
  • ASP.NET 动态输出404 HTTP状态代码
  • Web 部署任务失败 未能使用指定的进程“Web Management Service”连接到远程计算机
  • ASP.NET MVC AJAX.BeginForm异步提交和刷新无效
  • JSON劫持漏洞(详细讲解利用JSON从而进行数据劫持的漏洞攻防策略)

文章分类

.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使用HTML模板进行静态化操作
  • 思考ASP.NET网站静态化的利与弊
  • 记录Vs2013中文语言包安装卡住进度条不动的问题
  • 为什么谷歌adsense广告位会展示百度联盟的广告
  • ASP.NET MVC 动态返回指定的HTTP状态码

友情链接

  • Passingwind的博客
  • 码友网

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