您的位置:首页 > 运维架构 > 网站架构

【转载】不带www跳转www.设定网站唯一入口,提升权重!

2012-01-30 17:22 447 查看
目的:设定网站唯一入口。
描述:请在浏览器访问你的网站,注意url头是否带 www,例:www.59dd.com 或不带www,例:59dd.com 。检测两种入口是否能顺利打开网站。
问题:如果两种url同时可以打开网站,那么对于搜索引擎,会收录两个不同的url但页面相同的页面。
影响:1.搜索会判定相同的页面为相似页面,便会去删除其一并连带惩罚。
2.页面权重分散,由于多了一半相似页面,权重也会被分割。

解决方法:
NO1:nginx规则

if ($host !~* ^www\.59dd\.com$) {
rewrite ^(.*)$ http://www.59dd.com$1 permanent;
}

这也可以

server {
server_name 59dd.com;
rewrite ^(.*) http://www.59dd.com$1 permanent;
}

NO2: 如果网页是asp或者php动态类,而又非阿帕奇,无法简单方便使用301定向,那么我们就这样操作。(下以ecshop为例)
1.建立Php文件,命名为cls_301.php,修改里面两处网址为自己的网址,保存并上传到includes目录下。
cls_301.php代码如下

<?php

/**
* ECSHOP 301跳转类
* ============================================================================
* QQ:8996111
* ============================================================================
* $Author: anyfans $
* $Id: cls_301.php $
*/

$the_host = $_SERVER['HTTP_HOST'];
$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
if($the_host !== 'www.enqifushi.com')
{
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.enqifushi.com'.$request_uri); }
?>

2.修改includes/init.php
大概在79行,增加

require(ROOT_PATH . 'includes/cls_301.php');

增加后效果:

define('PHP_SELF', $php_self);

require(ROOT_PATH . 'includes/cls_301.php');
require(ROOT_PATH . 'includes/inc_c**tant.php');
require(ROOT_PATH . 'includes/cls_ecshop.php');

上传并覆盖,测试各页面无www的url是否正确跳转到www网址。

后续:对于没有解析的,就是无www访问的朋友,考虑用户体验,建议也做此类设定。

演示效果:
http://enqifushi.com/
http://enqifushi.com/goods-3876.html

上述NO2方法转载ecshop论坛会员l0ss帖子:【一分钟SEO支招】设定网站唯一入口,提升收录!受众率:99%
原文地址http://bbs.ecshop.com/viewthread.php?tid=149301

NO3。因为我还有个网址导航站www.59dd.com ,是生成的静态页面,想直接套用方法2,分析根目录下的init.php文件,有这段

// 初始化
require PATH_ADMIN . '/applications/app_init.php';
?>

于是就在app_init.php里 // 加载常量下增加

require PATH_APPLICATION . '/cls_301.php';

这个方法应该也是可行的,不知道是不是要在生成html静态页函数里面增加什么,没有研究,因为我的是阿帕奇!所以此方法绕过,可以直接在
Apache服务器实现301重定向,相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。

使访问59dd.com/的时候就会自动转到www.59dd.com/
在.htaccess文件里写上以下代码即可。

RewriteEngine on
RewriteCond %{http_host} ^59dd.com [NC]
RewriteRule ^(.*)$ http://www.59dd.com/$1 [L,R=301]

即可解决访问不带www.的所有页面跳转到带www.的链接!
演示效果:
http://59dd.com/
http://59dd.com/music/index.htm

OK结束! 大家举一反三,自行思考!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: