很多人都在用wordpress来做网站,而如果你网站主机使用的是linux系统,.htaccess配置文件就发挥着重要的作用,URL规范化,301重定向,防盗链等等。但是不知道大家有没有注意到,wordpress的.htaccess文件会经常被更改,我这里说的被更改并不是指网站被黑,或者是安装插件导致.htaccess改变,而是指.htaccess不知不觉的还原成默认的。
大家知道,在linux系统上安装完成了wordpress,并且在后台设置了伪静态的“固定连接”之后,会自动生成一个包含如下内容的.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
我们可以用记事本打开该文件进行编辑,添加一些语句以实现特殊的需要。我之前的一个用wordpress搭建的网站,由于结构的调整,导致很多url发生变化,于是我在.htaccess中用RedirectMatch把老的URL重定向到新URL:
# 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]
RedirectMatch 301 ^/category/old-category/ /category/new-category$2
</IfModule>
# END WordPress
今天在查看这个网站的日志的时候发现,Googlebot在抓取很多老的url都返回404错误,浏览器中打开这些老的url,也都是404错误页。不是都做过301重定向吗,为什么又变成了404呢?赶紧查看.htaccess文件,发现.htaccess的内容竟然都变成了默认的了,也就是我添加的301重定向语句RedirectMatch 301 ^/category/old-category/ /category/new-category$2 都自动消失了。以为是网站被黑了,但是不像啊,黑了我的网站,为什么只是把.htaccess改回默认的,而没有其他动作呢?我又查看了其他几个用wordpress搭建的网站,很多网站的.htaccess文件都是默认内容了!
网上搜了一下,没有找到我要的答案,唯一在wordpress中文论坛看到有人提到:如果更改了固定连接,wordpress会自动修改.htaccess文件中# BEGIN WordPress和# END WordPress的内容,但是我并没有修改过固定连接。
后来经过我自己测试,并非是因为修改固定连接,只要你点击了设置——固定连接,不管你有没有修改什么,也不管你又没有保存,只要点击了“固定连接”,.htaccess文件中# BEGIN WordPress和# END WordPress之间的内容就会被更改,自动还原。不知道这算不算是wordpress的一个bug。
这个问题最好的解决方法是:把自己添加在.htaccess中的语句,写在# BEGIN WordPress和# END WordPress之外,如下:
# 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 WordPressRedirectMatch 301 ^/category/old-category/ /category/new-category$2
其实,我在上个月就发现了这个问题,呵呵。上个月月底就修改过来了,呵呵。看来你还是经常看管理员工具的嘛
我是看网站日志发现的,早就应该发现了,只是一直没去看!
高手 能够发现这个问题
武汉SEO浪子飘过,学习了…
写得不错!准备转载到我的网络营销博客www.wuwenyuan.com上,当然,必须留版权!呵呵
谢谢博主的分享咯
厄.。。 我所采取的 办法就是 勤快点 备份 数据库 有啥大问题 恢复即可。。呵。