.NET设置301重定向详解。。
很多人在做网站的时候,都会为自己的某个网站注册多个域名。可能很多人都习惯将自己的很多域名都一股脑的全部绑定在一个站点上。其实,这样做对网站是很不利的,因为搜索引擎会搞不清楚,哪个域名是你要宣传的一个域名。导致搜索引擎会K掉其中的一个域名,而只保留一个域名,更糟糕的可能是2个域名在搜索引擎中都没有什么收录。所以,我们就需要为搜索引擎引路,去告诉搜索引擎,哪个域名才是你的网站对应的主要域名。由此,我们很有必要对次要的域名做301重定向设置。
在很多情况下,带www和不带www的两个网址,有时候也会被搜索引擎当作2个域名来处理。下面,我以IIS的web服务为前提,来说明一下做301重定向的设置。
我所知道的常用的301重定向设置方法有2种。一个是通过IIS界面直接设置,另外一个是通过代码来实现301重定向设置。以下例子以szrcwz.com 301重定向到www.szrcwz.com进行讲解。
第一种方法,通过IIS界面实现301重定向:
1.我们增加一个站点,绑定的以下主机头:szrcwz.com。注意,这里的szrcwz.com和www.szrcwz.com是因为不带www和带www有可能被搜索引擎当作不同的网址。对应目录E:\webroot\szrcwz301。该目录下只需要2个文件,一个index.htm,一个404.htm。截图如下:
3.到此,我们已经完成了将szrcwz.com域名301重定向到www.szrcwz.com。但是通常情况,我们可能以前宣传过不带www的域名,导致搜索引擎已经收录了szrcwz.com下的一些网址,这样为了不浪费这些收录,我们需要将这些从搜索引擎过来的流量转到www.szrcwz.com。那我们怎么做呢。可以通过404+301来实现。则我们设置下这个站点的404信息。还是IIS界面,右键,属性,自定义错误,找到404,双击,出来一个界面,然后在消息类型中选择URL,在下面的URL输入框中输入/404.html。然后我们再在IIS下重新对404.html做301重定向到http://www.szrcwz.com。操作步骤同第2步。这样的话,如果用户输入szrcwz.com/xxx.html之类的,因为找不到,则会到404.html,而通过301,用户最终会进入http://www.szrcwz.com该界面。
通过以上几步,我们在IIS里面完成了301重定向设置。但是大多数情况下,站长们都是用的虚拟主机,这样的话,就没法通过IIS来设置301重定向了。大家可以参考访问szrcwz.com试验一下效果。
附录:重定向的参数
$S-将请求的 URL 的后缀传递给新的 URL。后缀是用重定向的 URL 代替之后,初始 URL 中所保留的部分。如果未设置 EXACT_DESTINATION 标志,则结果目标 URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。
$P-将初始 URL 中的参数(如 querystring 参数)传递至新的 URL,不包括问号 (?)。 $Q-将初始 URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号 (?)。 $V-传递请求的 URL,不包括服务器名和任何参数。要包含参数,可使用 $P 或 $Q 变量及 $V 变量。如果未设置 EXACT_DESTINATION 标志,则结果目标 URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。 参数还有很多,基本上最常用的就是$S和$Q,任意网址想要实现301的永久重定向只需设置$S和$Q就可以了。 写到这里了,希望对各位站长朋友有用。
|
企业、个人免费注册,获取想要的 深圳 软件工程师招聘信息 月薪最低3000-8000,更有高端猎头职位!
关注微信公众号福利!!!
回复关键字「666」获取一份最新 Java 架构资料,你要的都有!
回复关键字「Java」获取JVM, 多线程等Java技术系列教程;
回复关键字「spring」获取Spring, Spring Boot, Spring Cloud教程;
回复关键字「架构」获取分布式、微服务、架构、高并发等系列干货;
回复关键字「面试」获取各种 Java 面试题及答案、面试实战经验;