解決 Nginx 下修改 WordPress 固定連結後導致文章跳出404

gninx 裝wordpress 時預設「設定」->「固定網址」-> 若有error 404頁時可以調回「一般」http://trg.chu.edu.tw/wordpress/?p=123   即可正常顯示每一頁,不會出現錯誤頁

在 4.2版的 WordPress 設定固定連結時,所有文章的畫面會直接跳出 Error 404,網路上提供的其中一個方法是「創建自己的鏈結」,但這方法似乎不是說很管用,最後找到了利用 Nginx 的複寫功能,來對設為「固定連結」的網址進行覆寫的動作,接下來我們就開始來操作吧。

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/html;

# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name trg.chu.edu.tw;

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# set expiration of assets to MAX for caching
location ~* \.(ico|css|js|gif|jpe?g|png|ogg|ogv|svg|svgz|eot|otf|woff)(\?.+)?$ {
expires max;
log_not_found off;
}

server_tokens off;      #不顯示web server 型號

location / {
try_files $uri $uri/ /index.php;     #若有error 404時導回/index.php
}

location ~ \.php$ {
# include snippets/fastcgi-php.conf;

fastcgi_pass unix:run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

條件說明

本教學適用於採預設安裝之 Nginx 伺服器,作業系統則為 Ubuntu 14.04。

操作步驟

Step1. 首先我們先找到 nginx 的 vhost 設定檔,預設路徑為 /etc/nginx/sites-available/vhost設定

Step2. 輸入以下指令開始編輯

$ sudo vim /etc/nginx/sites-available/vhost設定檔

Step3. 在 Server{} 當中加入以下程式碼,位址可依自己習慣進行設定。

if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}

if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}

if (!-f $request_filename){
rewrite (.*) /index.php;
}

Step4. 重新讀取 nginx 設定

$ service nginx reload

Step4. 重啟nginx服務

$ service nginx relstart

Step6. 登入自己的 WordPress 網站,檢查連結是否有正常運作。

無迴響

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

UNIX相關
Ubuntu 14.04 Nginx 安裝moodle

儀表板 網站管理 主機 HTTP 使用斜線參數slasharguments 預設值:是   「此值不 …

UNIX相關
Linux KMS

部署KMS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 …

UNIX相關
NGINX 使用 Let’s Encrypt 免費 SSL 憑證設定 HTTPS 安全加密網頁教學

本文介紹如何在 nginx 伺服器上使用免費的 Let’s Encrypt 憑證,提供 HTTPS …