java多线程    Java入门    vsftp    ftp    linux配置    centos    FRP教程    HBase    Html5缓存    webp    zabbix    分布式    neo4j图数据库    

将www域名指向不带www域名

本篇文章介绍了各种环境下url 301转向的办法。先从博主月小升的博客谈起。

最近发下百度有时候收录带www的java-er.com的内容,有时候收录不带www的。看起来就不太爽。而且搞过SEO的朋友都明白,www.java-er.com/1.html和 java-er.com/1.html 会被百度认为是两个网页,但是内容相同。还是搞一下重定向吧。

月小升博客采用的apache主机
直接修改.htaccess 增加以下两行
RewriteCond %{http_host} ^java-er.com [NC]
RewriteRule ^(.*)$ http://www.java-er.com/$1 [R=301,L]

搞定www.java-er.com/1.html 自动跳转到java-er.com/1.html

但是。。。。。
发现首页不跳。

鼓捣了半天规则,还是不行。写一段代码吧。

$curl = $_SERVER['HTTP_HOST'];

if (ereg("www.java-er.com",$curl)) {	
	header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://java-er.com");
    exit();
}

以上内容加入index.php文件最上面 好了。。

X:301重定向是什么概念?
Mr.zhu:可以这样理解,在地址栏输入java-er.com这个URL,可以看到自动跳转到www.java-er.com 这个URL上,这样的效果即是301重定向。

X:那么应该不是所有的虚拟主机都支持这样的跳转吧?
Mr.zhu:是的,没错,要想支持跳转的条件是:

1、window的虚拟主机IIS的服务器,需要有安装 ISAPI_Rewrite这个组件。(咨询主机商是否支持)如果支持,则先2个域名都解析到同一个IP,然后在httpd.ini文件开始处加入以下规则:

RewriteCond Host: ^java-er\.com$
RewriteRule (.*) http\://www\.java-er\.com$1 [R,I]

上面这段代码要是没效果就试试下面这段

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteCond Host: ^java-er\.com$
RewriteRule (.*) http\://www\.java-er\.com$1 [I,RP]

2、linux的虚拟主机Apache的服务器,需要支持.htaccess 这个文件。(咨询主机商是否支持)如果支持,则先2个域名都解析到同一个IP,然后在.htaccess文件开始处加入一下规则:
1)将不带WWW的域名转向到带WWW的域名下

RewriteCond %{http_host} ^java-er.com [NC]
RewriteRule ^(.*)$ http://www.java-er.com/$1 [R=301,L]

2)重定向到新域名

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)$ http://www.java-er.com/$1 [L,R=301]

3)使用正则进行301转向,实现伪静态

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^news-(.+)\.html$ news.php?id=$1

将news.php?id=123这样的地址转向到news-123.html
3、ASP下的301转向代码

<%@ Language=VBScript %>
<% Response.Status=”301 Moved Permanently” Response.AddHeader “Location”, “http://www.java-er.com/articles/301/” %>

4、ASP.Net下的301转向代码

5、PHP下的301转向代码

header(”HTTP/1.1 301 Moved Permanently”);
header(”Location: http://www.java-er.com/articles/301/”);
exit();

6、CGI Perl下的301转向代码

$q = new CGI;
print $q->redirect(”http://www.java-er.com/”);

7、JSP下的301转向代码

<% response.setStatus(301); response.setHeader( “Location”, “http://www.java-er.com/” ); response.setHeader( “Connection”, “close” ); %>
8、Apache下vhosts.conf中配置301转向为实现URL规范化,SEO通常将不带WWW的域名转向到带WWW域名,vhosts.conf中配置为:

    
    ServerName www.java-er.com    DocumentRoot /home/lesishu
    
    
    ServerName lesishu.cn
    RedirectMatch permanent ^/(.*) http://www.java-er.com/$1
    


This entry was posted in PHP, 科技精品 and tagged , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/www-urlrewrite/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

Leave a Reply