鉴于实际在网站操作过程中,为了迎合搜索引擎的收录及排名规则,会在一定程度上将同一个网站的域名保持统一,而其它的域名则会被通过一种方式如301重定向至主域名上面,确保网站权重的统一;
加上这两天也一直有朋友在问,对于一个网站301如何去做,在床上想了下,初步整理出五种方法来实现这个301的过程;为了下文方便写作,付涛将演示的两个域名初设为:diebaosoft.com和www.diebaosoft.com 。
这一种方法是通过在协议层就已经进入了状态设置,原理有点类似于现在很多的CDN服务商,所开发的HTTP强制跳转HTTPS一样,只是301重定向是在DNS域名服务器解析下进行,而HTTP向HTTPS跳转是在CDN服务商下进行罢了,如果想了解HTTP强制跳转HTTPS,请查阅下文:
[lxtx_fa_insert_post ids=205">
域名301重定向操作方法如下:
在域名解析后台,我们新增解析,然后【记录类型】选择为【显性URL】 即可;生效速度也很快。
【显性URL】一般可以用于正常的域名与域名之间的跳转,被跳转后的域名能被大众所认可的情况;
【隐性URL】比如说现在给客户做一个网站,但是价格太低,不想弄好的空间,就随便弄了一个空间,但是又不方便直接用免费赠送的空间域名直接访问的时候,即可以使用将自己的一个独立的域名跳转到空间上那种免费赠送的三级或四级域名上面;达到能用域名正常访问但又不会被看出端倪的目的;
但是隐性URL有一个硬性要求,必须网站域名备案,否则无法使用,平台也是为了安全着想,避免助纣为虐,为不正常行业提供服务;
因为域名DNS服务商对于域名解析的差异化,直接导致部分用户在不愿意使用或者不会使用第三方域名解析服务如DNSPOD的服务的时候,可以直接采用在网站文件里面添加代码的方式实现301跳转;操作代码如下:
更推荐这种方法,因为它可以把diebaosoft.com原来所有的url都转到http://www.diebaosoft.com新的地址。
<?php $the_host = $_SERVER['HTTP_HOST">; $request_uri = isset($_SERVER['REQUEST_URI">) ? $_SERVER['REQUEST_URI"> : ''; if($the_host == 'diebaosoft.com') { header('HTTP/1.1 301 Moved Permanently'); header('Location: http://www.diebaosoft.com'.$request_uri);// } ?>
单页多站的Php301重定向代码,www.diebaosoft.com和diebaosoft.com则301到index.php上,yunxiaosoft.com则301重定向到www.yunxiaosoft.com上,否则转到错误页。
if(($HTTP_HOST=="www.diebaosoft.com")or($HTTP_HOST=="diebaosoft.com")) { header("HTTP/1.1 301 Moved Permanently"); Header("Location: /index.php"); } elseif($HTTP_HOST=="yunxiaosoft.com") { header("HTTP/1.1 301 Moved Permanently"); Header("Location: www.yunxiaosoft.com"); } else { Header("Location: /404.htm"); } ?>
修改IIS的方法是一个比较方便,但又比较受局限的手段;方便是因为可以任意修改,受局限是因为并非每一个客户每一个人都有自己的独立服务器;对于有服务器的可以继续阅读,没有服务器的可以略过此方法,直接进入大法四;
登陆服务器打开IIS,然后选择对应的站点,在打开的窗口右侧中,选择【HTTP重定向】
1.打开服务器iis信息管理器
2.选中需要重定向的网站
3.右侧界面出现的功能模块中选择HTTP重定向双击出现操作界面
4.勾选将请求永久重定向到此目标输入跳转到的域名
5.勾选将所有请求重定向到确切目标(而不是相对目标)
6.下拉选择(永久301)
7.右侧菜单栏选择应用
我们知道,网站一般创建好了之后,在根目录下面都会自动生成一个web.config的环境配置文件,而这个文件里面也全部保存了当前网站在IIS里面的配置信息;所以,如果说自己没有服务器,无法采用大法三的方式来达到目的,在此处可以使用修改WEB.CONFIG来达到相同的目的;如果默认空间根目录不存在,则直接创建一个即可;
web.config配置301重定向的代码如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <!--重定向代码正式开始--> <rewrite> <rules> <rule name="WWW Redirect" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^diebaosoft.com$" /> </conditions> <action type="Redirect" url="http://www.diebaosoft.com/{R:0}" redirectType="Permanent" /> </rule> </rules> </rewrite> <!--重定向代码正式结束--> </system.webServer> </configuration>
现在大部分国内稍微大一点的空间服务商,在空间面板里面都已经集成了关于301重定向的相关设置功能,可以直接打开使用即可;
点击301重定向然后进入下方界面:
直接在此处填写转向到的网址即可,操作很简单;
上方整理了针对不同环境下关于301重定向的解决方案,但是大家在使用中要注意一个问题,就是建议diebaosoft.com域名301重定向到www.diebaosoft.com域名的时候,特别建议网站不要采用HTTPS证书;否则当用户输入diebaosoft.com进入网站的时候,将面临着域名与域名、HTTP协议与HTTPS协议之间的多重跳转;如果使用HTTPS协议并成功安装SSL证书,那么建议不带W的就直接不要解析了;本身在域名上不带W和带W的就是两个站点;不需多此一举;关于域名级别,不懂的可以在下方文章中获取认知与深入了解;
[lxtx_fa_insert_post ids=263">