最近更换了网站域名,因为考虑到SEO因素,所以在linux根目录下.htaccess文件中添加了301重定向规则,这样可以减少网站的权重丢失。然而自己却遭遇到了一个诡异的事情。

事情是这样的:
301重定向规则设置很简单,只需要在linux主机默认的.htaccess配置文件中添加以下代码即可实现:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.xiaochuanseo.com$ [OR]
RewriteCond %{HTTP_HOST} ^xiaochuanseo.com$
RewriteRule ^(.*)$ http://www.xuejianzhan.com/$1 [R=301,L]

这样我之前的的域名xiaochuanseo.com就会被重定向到新的域名xuejianzhan.com了,修改完成后效果完全没有问题,可是在我第二天习惯性的再次打开老域名时,发现域名并没有按照设置跳转到新域名xuejianzhan.com,这是什么情况,明明是设置了301重定向的啊?

果断打开空间根目录查看.htaccess配置文件,怪事出现了,我设置好的.htaccess 301重定向代码竟然不存在了?利用使用平时解决问题的排除法:
1、空间只有两个人可以修改,我本人和主机商;
2、黑客。
马上联系空间商,咨询相关事情,主机商竟然比我还惊讶,当我问及.htaccess文件被修改时,他说:不会吧,并说明他们不会擅自修改客户网站信息的。排除了我和空间商,那只有黑客了!

然后自己使用百度站长平台、谷歌站长工具、互联网安全、日志宝等一大通后,发现均显示自己的网站无异常。这也正常,哪个黑客那么无聊只修改你的.htaccess文件,不动用其他的内容呢?

这也不是原因,奇怪了!难道是wordpress程序它自己会变不成?

带着这个疑问,我使用了平时最强大的解决问题的方法:百度和谷歌之!
竟然还真有这回事,原来别人也曾经遇到过这样的诡异事件,并提出了问题发生的原因和解决办法,这就是主流程序的强大啊,你永远不会孤军奋战,呵呵。下面说下问题发生的始末:

使用linux主机安装wordpress后,当每次修改设置下的固定链接后,都会还原.htaccess文件以下代码之间的信息:

# BEGIN WordPress
……
# END WordPress

而我的301重定向规则就是写在这两段代码之间的,所以会出现这样诡异的事情。

知道了原因,解决方法也就有了,我们可以通过以下两种方法搞定:
1、不再修改固定链接(本身就不需要多次修改);
2、把规则放在被还原标示之外(目前采用的方式),如下所示:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.xiaochuanseo.com$ [OR]
RewriteCond %{HTTP_HOST} ^xiaochuanseo.com$
RewriteRule ^(.*)$ http://www.xuejianzhan.com/$1 [R=301,L]

声明:本站分享的WordPress主题/插件均遵循 GPLv2 许可协议(免费开源),相关介绍资料仅供学习参考,实际版本可能会因版本迭代或开发者调整而产生变化,如程序中涉及有第三方原创图像、设计模板、远程服务等内容,应获得作者授权后方可使用。本站不提供该程序/软件的产品授权与技术服务,亦不收取相关费用。