曾经幻想着挂两个网站,国内阿里云一个国外DO云一个,这样两边访问速度都快了。结果这几天提交百度和谷歌收录的时候,迟迟没有索引了,网上一查,才发现问题:搜索引擎拒绝镜像网站!没办法,只好把之前用的域名停掉,为了把收录量转过来,就做了域名的301重定向。现在是成功了,但是成功的原因我还是莫名其妙。
先是看网上的建议,在网址根目录下找到 .htaccess 文件,进行了修改,最后主要就是加两句话:
- RewriteCond %{http_host} ^www.maydolly.com [nc]
- RewriteRule ^(.*)$ http://www.classnotes.com/$1 [L,R=301]
但是总是失败,最后变成了这个样子:
- RewriteEngine On
- # BEGIN WordPress
- <IfModule mod_rewrite.c>
- RewriteEngine On
- #RewriteBase /~maydolly/
- RewriteBase /
- RewriteRule ^index\.php$ – [L]
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- #RewriteRule . /~maydolly/index.php [L]
- RewriteRule . /index.php [L]
- </IfModule>
- RewriteCond %{http_host} ^www.maydolly.com [nc]
- RewriteRule ^(.*)$ http://www.classnotes.com/$1 [L,R=301]
- # END WordPress
但是还是不行,完全没有作用。本着死猪不怕开水烫的想法,我把这个文件复制了一份放到主题文件夹下,依然失败!
这时候只好找别的出路,看到一个方法,修改主题下的 header.php 文件,在 </head> 之前添加跳转代码:
- <?php
- $the_host = $_SERVER[‘HTTP_HOST’]; //取得进入所输入的域名
- $request_uri = isset($_SERVER[‘REQUEST_URI’]) ? $_SERVER[‘REQUEST_URI’] : “”; //判断域名后面的请求部分
- if ($the_host != ‘http://www.classnotes.cn’) //http://bl.idcspy.org是新域名
- {
- header(‘HTTP/1.1 301 Moved Permanently’); //发出301状态码
- header(‘Location: http://www.classnotes.cn’ . $request_uri); //跳转到我的新域名地址
- exit();
- }
- ?>
- <!–301代码结束–>
开始因为参考网址的代码有问题,网址死掉了,由于临时有事,我也没管。过了大概一个小时,我把代码修改后,网址可以打开的时候,竟然能成功跳转了!从第三句可以看出,判断语句冒号后面根本没有内容,我只是放了个空引号子啊那里。但是网站首页、内页,所有网页正常跳转。谷歌测试、百度验证301跳转,直接通过。立马进行了搜索引擎的改版收录。现在就等收录完成然后把原域名关掉,置于哪里起作用,暂时还没法确定,先这样吧。