不知道大家有沒有留意到,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 意外即可,這樣就是他恢復默認也沒有關係了。