博客换域名后的挣扎——网页重定向篇

没有什么图片好插的,就将仙剑五女主角的图片发上来供大家欣赏吧!

  域名换了也有一段时间了,各种要改的也在今天彻底结束了。
  新域名绑定是很简单的,通知友链博客修改地址也简单,至于统计代码就更简单了,需要的只是时间而已。有点难度的是修改以前的地址,博客中的旧域名。还有网页重定向。
  修改那些残留的地址,当然会想到修改数据库,我也是这样做的。只是方法有点特别,直接使用sql语句我根本不会,其实我完全可以直接再网上把代码找下就完了,不过我当时没想起来。我先将数据库备份下来,然后再用记事本打开,搜索替换,本来没有什么工作量,可速度太慢,无赖换了WORD替换,瞬间的事,哪像那个记事本啊。期间也发现word打开utf-8编码乱码,还得用记事本将编码转来转去,我的天啦,咋就这么麻烦了。一切就绪之后,数据库传了上去,又出了问题,主题设置恢复默认了。我就想,还有这道理啊,早知道我就先不将统计代码放上去,剩下的就是重定向。
  我曾经希望wp有这样一个功能,自动检测当前页面地址,然后自动跳转到新页面地址该多好,这样的想法是不错,不过对搜索引擎又不太有利。于是还是从.htaccess文件下手。cPanel控制面板的确强大,直接在里面将www.loveyu.info重定向到www.loveyu.org,一切正常,但这样就行了吗,理论上说当然可以。但老天就是不眷顾我,测试发现除博客的内容其他的全部可以,谁说这不是我的悲哀呢!
  当初的.htaccess文件是这样写的。有谁能发现问题呢!

# BEGIN WordPress
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</ifmodule>

# END WordPress

RewriteCond %{HTTP_HOST} ^(loveyu\.org)(:80)? [NC]
RewriteRule ^(.*) http://www.loveyu.org/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^loveyu.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.loveyu.info$
RewriteRule ^(.*)$ "http\:\/\/www\.loveyu\.org\/$1" [R=301,L]

  我也认为这个代码已经很完美了,确无法使用,我花了近一天的时间在各个博客寻找关于网页重定向的写法,直到放假结束也没有寻找到该如何解决,唯一没做的就是发帖求助了,因为我认为这个问题很常见,通过搜索应该能够解决。搜索当然是有效果的,看到了很多不同的写法,不过我除了复制什么也不会,简单修改之后我就开始使用,这样的后果是惨重的。
  我也就从修改.htaccess的过程中发现了“500页面”是怎样产生的,也清楚了怎样解决,删掉就解决了,也算是个很低级的错误。我以前一个很好的免费空间(当然速度不咋样)就因为一直500页面被我给丢弃了,现在看来可惜啊。当然还有发现了403页面,这个页面不常见,可能只有像我这傻子一不小心将目录权限修改了导致这样的错误,你们可不知道我就为这个原因在百度知道中转了半小时。但这次的.htaccess却在百度知道中没有找到解决办法。
  就这样,郁闷了几天。每天都在找解决的方法,技术博客倒是看了不少,就是千篇一律。今天为此就浪费了两节化学课,虽然是自己写作业。事情终有解决的一天,中午,去食堂的路上,看到了一个放开水瓶的地方,有三层,如果是你你会选择哪一层呢!困扰我几天的难题就此解开。
  答案应该是这样,在服务器读取.htaccess的时候应该也是有个顺序的,不过它总不可能从中间开始读取吧。于是分析了一下,开始就是wp生成的默认代码,接着就是首页定向为www,接着就是loveyu.info的重定向,最后就是防盗链的(这个我省略了)。问题就出在顺序上,一开始域名还没有被重定向就已经让WP读取,页面地址就固定了,这也就验证了为什么真实存在的文件可以定向的原因。
  于是我将代码改成这样,一切正常了。

# BEGIN WordPress
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^loveyu.info$ [OR]
RewriteCond %{HTTP_HOST} ^www.loveyu.info$
RewriteRule ^(.*)$ "http\:\/\/www\.loveyu\.org\/$1" [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</ifmodule>

# END WordPress

RewriteCond %{HTTP_HOST} ^(loveyu\.org)(:80)? [NC]
RewriteRule ^(.*) http://www.loveyu.org/$1 [R=301,L]

  最后写个总结吧,一个难题并非存在一定的高度,只是我们想的复杂,忽略最简单的逻辑,而生活中存在这种规则。

10条评论在“博客换域名后的挣扎——网页重定向篇”

  1. 因为要静态化页面 改变了固定链接
    所以用一个插件做重定向 搞得满博尽是404
    后来终于不再重定向 让搜索引擎慢慢更新

    1. 定向我从来没有用插件,我只修改过.htaccess,结果弄得一进入就是500,后来还是弄好了,不过也可以通过再头文件中加一段代码解决的,这样比较简单。用插件显得有点麻烦

写下你最简单的想法