2020年3月22日 星期日

解決 WordPress 固定網址設定 404 錯誤

檢查mod_rewrite 已經開啟。


檢查 mod_rewrite 是否開啟。
Apache 的 mod_rewrite 功能預設是關閉的,透過以下指令來啟動覆寫功能。
sudo a2enmod rewrite
設定完後 mod_rewrite 功能後必須重啟 Apache
sudo service apache2 restart
再修改 Apache 的主要設定檔。
 Apache如配置多個網域,請到 WordPress 對應的設定檔。如果沒有修改過,設定檔在 Ubuntu 的預設路徑為:
/etc/apache2/sites-available/000-default.conf
使用 vim 或 nano 指令編輯檔案,主要設定檔的開頭應該是 <VirtualHost *:80> 在它上方加入這段:
<Directory "/var/www/wordpress/">
    AllowOverride All
</Directory>
記得將 /var/www/wordpress/ 換成 WordPress 安裝的根目錄路徑
修改完成後儲存檔案,再重啟 Apache:
sudo service apache2 restart
最後,修改 .htaccess 檔案
一般來說 WordPress 可以自動修改 .htaccess 檔案,但是遇到權限錯誤的問題也是常有的事,如果有這種狀況,WordPress 應該會提供設定好的 .htaccess 檔案內容,可以手動以 FTP 在網站根目錄去新增 .htaccess 檔案。
由於 .htaccess 檔案為隱藏檔,新增時可以先將 FTP 軟體的顯示設定打開,例如使用 FileZilla 請從工具列-伺服器-強制顯示隱藏檔案。以本篇 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 產生的為準。或是我們也可以新增空白的 .htaccess 檔案,並將權限暫時改為 777 rwxrwxrwx,讓 WordPress 能順利修改檔案,當自動設定完成後,再將 .htaccess 權限改回 644 rw-r–r– 即可。