在网上查询了一下还没有人分享linux主机如何通过.htaccess文件同时实现301重定向和伪静态的,为帮助菜鸟级站长朋友少走弯路,特以把我的经验分享一下。
最近用PW做了一个新站,备案审核通过,百度、Google也均已收录。但有个问题是,百度不像Google那样有网站管理员工具,可以设置主域名,带www和不带www的域名全部都收录,致使网站权重过于分散;与站长朋友做友情链接时,大多不愿与我交换,因为本身就是一个新站,收录页本来就不多,权重又过于分散,所以,哈哈,人之常情,让我换,可能我也不换。使权重重新集中其来,最好的办法就是设置一个主域名,做301永久重定向。假设是带www的域名做主域名,那就把不带www的域名重定向到带www的域名上。
由于我的新站是用PW做的,有网友介绍可能通过PW下的ghoble.php(网站根目录下)文件达到301重定向的目的,我的ghoble.php代码如下:
在下述代码下:
file_exists('install.php') && ObHeader('install.php');
error_reporting(E_ERROR | E_PARSE);
set_magic_quotes_runtime(0);
function_exists('date_default_timezone_set') && date_default_timezone_set('Etc/GMT+0');
|
填加以下代码;
$host= 'www.lxjiehun.com'; //填写你需要转到的地址
if ($_SERVER['HTTP_HOST'] != $host) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://{$host}{$_SERVER[REQUEST_URI]}");
}
unset($host);
|
但试过之后一段时间,百度依然收录不带WWW的网页,有可能ghoble.php文件能实现301功能,但百度不认可?我的主机是linux主机,还有个方法就是通过修改.htaccess文件达到301重定向功能。我原来是通过.htaccess文件做的伪静态,代码如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
RewriteRule ^(.*)simple/([a-z0-9\_]+\.html)$ $1/simple/index.php?$2
</IfModule>
|
在网上没有查到如何通过.htaccess文件同时实现301重定向和伪静态,我先把原.htaccess做了一下备份(很重要噢),经过几次实验,终于成功了,其代码如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{http_host} ^lxjiehun.com [NC]
RewriteRule ^(.*)$ http://www.lxjiehun.com/$1 [L,R=301]
RewriteRule ^(.*)-htm-(.*)$ $1.php?$2
RewriteRule ^(.*)simple/([a-z0-9\_]+\.html)$ $1/simple/index.php?$2
</IfModule>
|
一段时间之后,百度也只收录带www的域名了。