在使用 Nginx 配置 WordPress 運行于二級目錄時,若主題無法正常顯示,可能是因為靜態(tài)資源(如 CSS、JS、圖片)未正確加載。以下是可能的原因和解決方法:
1. 確保正確設(shè)置 WordPress 地址和站點地址
- 登錄 WordPress 管理后臺,前往
設(shè)置 -> 常規(guī)
。 - 確保以下設(shè)置正確:
- WordPress 地址 (URL):
https://example.com/subdirectory
- 站點地址 (URL):
https://example.com/subdirectory
- WordPress 地址 (URL):
2. 檢查 Nginx 配置
Nginx 配置需要支持 WordPress 的重寫規(guī)則。以下是一個示例配置:
server {
listen 80;
server_name example.com;
root /path/to/your/site;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000; # 或者 unix:/run/php/php7.4-fpm.sock
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|otf|eot)$ {
expires max;
log_not_found off;
}
# 支持二級目錄
location /subdirectory/ {
try_files $uri $uri/ /subdirectory/index.php?$args;
}
}
注意:
- 將
/path/to/your/site
替換為 WordPress 的實際路徑。 - 確保
fastcgi_pass
指向正確的 PHP-FPM 服務(wù)。
3. 確保靜態(tài)資源路徑正確
如果主題的靜態(tài)資源路徑錯誤,可能是因為 WordPress 生成的 URL 仍然是根目錄路徑。例如:
https://example.com/wp-content/themes/...
(錯誤)https://example.com/subdirectory/wp-content/themes/...
(正確)
解決方法:
- 在 WordPress 的根目錄中編輯
wp-config.php
,添加以下代碼:
define('WP_HOME', 'https://example.com/subdirectory');
define('WP_SITEURL', 'https://example.com/subdirectory');
- 確保
.htaccess
文件或 Nginx 重寫規(guī)則與子目錄路徑匹配。
4. 更新固定鏈接
- 登錄 WordPress 后臺,前往
設(shè)置 -> 固定鏈接
。 - 重新保存一次現(xiàn)有設(shè)置(無需更改),以確保
.htaccess
或 Nginx 規(guī)則生效。
5. 檢查文件權(quán)限
確保 WordPress 目錄和文件具有正確的權(quán)限,靜態(tài)資源可以被 Nginx 讀取。
sudo chown -R www-data:www-data /path/to/your/site
sudo find /path/to/your/site -type d -exec chmod 755 {} \;
sudo find /path/to/your/site -type f -exec chmod 644 {} \;
6. 清理緩存
如果你使用了緩存插件或瀏覽器緩存,可能需要清理緩存以加載最新的靜態(tài)資源。
7. 調(diào)試和日志
- 檢查 Nginx 日志:
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
- 確認(rèn)是否有 404 錯誤的靜態(tài)資源請求。
按照以上步驟操作后,WordPress 應(yīng)該可以在二級目錄下正常運行并正確加載主題。