不知道大家有没有留意到,WordPress 的.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

我的固定连接用的是 “/%postname%.html” 这样的 URL 结构,所以你看见的文章后面都是.html 结尾,然而在.html 后面加上一个 “/” 斜杠也可以访问,这样可能会对搜索引擎不利,所以我就在.htaccess 配置文件中加入了一句 301 重定向,如下:

# BEGIN WordPress

<IfModule mod_rewrite.c>

  RewriteEngine On

  RewriteBase/

  RewriteRule^(.*).html/$$1.html[L,R=301]

  RewriteRule^index.php$[L]

  RewriteCond%{REQUEST_FILENAME}!f

  RewriteCond%{REQUEST_FILENAME}!d

  RewriteRule./index.php[L]

</IfModule>

# END WordPress

后来发现只要你点击了设置——固定连接,不管你有没有修改什么,也不管你又没有保存,只要点击了 “固定连接”,.htaccess 文件中 # BEGIN WordPress 和 # END WordPress 之间的内容就会被更改,自动还原。

所以解决办法是将自己添加的部分加到 # BEGIN WordPress 和 # END WordPress 意外即可,这样就是他恢复默认也没有关系了。