为什么要这么做?这样肯定是有利于SEO的,原因是经常会碰到这样的情况,其他网站链接你的站点时,会用下面的链接:
www.xxxx. com
xxxx.com
而这样导致:你站点主域名的 pr值 分散到其他几个URLs了。
如果你用301重定向把其他三个URL转到www.xxxx.com,PR也就集中在主域名:www.xxxx.com 了。
因此,当你的网站有多个域名绑在一个空间时,最好要做301重定向到主域名。
下面全部讲解几种方式,分别适合不同用户,比如有服务器权限的用户,和虚拟主机用户。
(一) nginx 修改:
方式1:把顶级域名单独配置如下:
server {
listen 80;
server_name xxxx.com;
return 301
}
#在server上增加一段
server {
listen 80;
server_name www.xxxx.com;
…
}
方式2:(不推荐这样)并在一起配置:
server {
listen 80;
server_name www.xxxx.com xxxx.com; #放在一起配置
if ($http_host = xxxx.com) {
rewrite (.*)
}
…
}
(二)Apache服务器,可修改.htaccess文件:
1, 修改 httpd .conf文件,确保ReWrite模块开启,并在相应目录支持ReWrite功能:
#下面这一行的#号去掉
LoadModule rewrite_module modules/mod_rewrite.so
#网站目录下的Allowoverride设置
设置:AllowOverride all
<Directory “….”>
…
AllowOverride all
2, 设置.htaccess文件(需要虚拟主机支持)
使访问 xxxx.com/的时候就会自动转到www.xxxx.com
在网站根目录的.htaccess文件里写上以下代码即可:
RewriteEngine on
RewriteCond %{http_host} ^xxxx.com [NC]
RewriteRule ^(.*)$ [L,R=301]
这段代码的意识就是通正则表达式,将直接访问顶级域名的请求,全部转向www 二级域名 。
注意:URL标准化的301重定向(以上代码)需要写在其他URL-rewrite代码之前。
(三)PHP方法:
在代码最开始的地方加入:
//301跳转
$sourceDomain = ‘xxxx.com’ ; //顶级域名
$targetDomain = ‘ //要重定向到这个网址,必须以301开头。
if($_SERVER[‘HTTP_HOST’]==$sourceDomain) {
if(!empty($_SERVER[“REQUEST_URI”])) $uri301 = strip_tags($_SERVER[“REQUEST_URI”]); #/index.php?m=member&c= message &msgtype=1?
else $uri301 = strip_tags($_SERVER[“PHP_SELF”]) . ( !empty($_SERVER[“QUERY_STRING”]) ? “?”.$_SERVER[“QUERY_STRING”] : ”); #/index.php?
#if($uri301==”/index.php” || $uri301 ==’/’ ) $uri301=””;//首页清空
$redirect301Url = $targetDomain.$uri301;
header(‘HTTP/1.1 301 Moved Permanently’);//发出301头部
header(‘Location:’.$redirect301Url);//跳转到带www的网址
exit;
}
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理