301 重定向方法
研究了一个上午才完全搞定在服务器上和虚拟主机上的 301 重定向的
问题 一、windows 服务器,iis6.0。301 重定向方法 以本站为例,本站域名 shenzhenwo,shenzhenwo, shenzhenwo,shenzhenwo 目标:将所有域名 301 跳转到 shenzhenwo,好处我就不说了,绝 对有利于 SEO,所有域名的权重将集中在 shenzhenwo 这个域名上,包 括 PR,收录等等。 1、在 IIS 里网站(主站)的所有主机头删除,只留 shenzhenwo 这一个主机头 2、新建一个网站,暂且命名为 ReURL,网站目录可以为空,将新建的这个 网站的主机头设为 shenzhenwo,shenzhenwo,shenzhenwo 这 三个。 3、设置 ReURL 的属性,在“重定向到”一栏里面输入 “shenzhenwo$S$Q”,然后在“上面输入的准确 URL”和“资 源的永久重定向”两个选项前面打钩,最后点应用,就此 301 重定向全部设置完 成。 4、二级域名的设置方法也跟上面步骤一样,如要将 shenzhenwo/bbs 301 转向为 bbs.shenzhenwo。也许你会说我直接 设置个二级域名就可以了,但是
搜索引擎会认为 shenzhenwo/
bbs/1.htm 和 bbs.shenzhenwo/1.htm 是两个不同的 页面,但事实上这两个页面是一样的,因此会分散这个页面的权重。 ---------------------------重定向的参数说明-------------------------$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 就可以了。
二、虚拟主机的 301 重定向方法,以
PHP 为例。 在最先执行的页面上面加入以下代码: 以下代码功能是,将 kangshunlaw 跳转到 kangshunlaw
----------------------------------------------------------------- r('Location: kangshunlaw'.$request_uri); //跳 转 } ?> -----------------------------------------------------------------需要说明的是,这个代码只能实现当前页面的跳转(也就是加了代码的这个 页面的跳转)。要实现整站的跳转,则需在服务器上设置。 另外在
网络上看到很多以下代码的跳转方式: ------------------------------------------------------header("HTTP/1.1 301 Moved Permanently"); header("Location:kangshunlaw/"); exit(); ------------------------------------------------------其实这种方式是不对的, 没有做头部判断造成死循环。这种方式只适合从 A 域名 跳转到 B 域名, 比如你帮网站换了个新域名。要实现带 www 和不带 www 之间的跳 转则需用第一段代码。