将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转向代码

<script runat=server>
    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Status =301 Moved Permanently”;
    Response.AddHeader(”Location”,”http://www.java-er.com/articles/301/“);
    }
    </script>

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中配置为:

    <VirtualHost *:80>
    ServerName www.java-er.com    DocumentRoot /home/lesishu
    </VirtualHost>
    <VirtualHost *:80>
    ServerName lesishu.cn
    RedirectMatch permanent ^/(.*) http://www.java-er.com/$1
    </VirtualHost>
如果你是一名技术人员可加我QQ 2651-0442-02,如果你是java技术人还可以加入QQ群 1784-9136-0
你将得到的不仅仅是技术的交流,还有职业机会,人生解惑.
首发地址:月小升博客https://java-er.com/blog/www-urlrewrite/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
此条目发表在 PHP, 科技精品 分类目录,贴了 , 标签。将固定链接加入收藏夹。
既然来了,就评论一下,不会怀孕的

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">