在使用 Nginx 配置 WordPress 運(yùn)行于二級(jí)目錄時(shí),若主題無(wú)法正常顯示,可能是因?yàn)殪o態(tài)資源(如 CSS、JS、圖片)未正確加載。以下是可能的原因和解決方法:


1. 確保正確設(shè)置 WordPress 地址和站點(diǎn)地址

  • 登錄 WordPress 管理后臺(tái),前往 設(shè)置 -> 常規(guī)
  • 確保以下設(shè)置正確:
    • WordPress 地址 (URL):https://example.com/subdirectory
    • 站點(diǎn)地址 (URL):https://example.com/subdirectory

2. 檢查 Nginx 配置

Nginx 配置需要支持 WordPress 的重寫(xiě)規(guī)則。以下是一個(gè)示例配置:

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;
    }
    
    # 支持二級(jí)目錄
    location /subdirectory/ {
        try_files $uri $uri/ /subdirectory/index.php?$args;
    }
}

注意:

  • /path/to/your/site 替換為 WordPress 的實(shí)際路徑。
  • 確保 fastcgi_pass 指向正確的 PHP-FPM 服務(wù)。

3. 確保靜態(tài)資源路徑正確

如果主題的靜態(tài)資源路徑錯(cuò)誤,可能是因?yàn)?WordPress 生成的 URL 仍然是根目錄路徑。例如:

  • https://example.com/wp-content/themes/... (錯(cuò)誤)
  • 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 重寫(xiě)規(guī)則與子目錄路徑匹配。

4. 更新固定鏈接

  • 登錄 WordPress 后臺(tái),前往 設(shè)置 -> 固定鏈接。
  • 重新保存一次現(xiàn)有設(shè)置(無(wú)需更改),以確保 .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. 清理緩存

如果你使用了緩存插件或?yàn)g覽器緩存,可能需要清理緩存以加載最新的靜態(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 錯(cuò)誤的靜態(tài)資源請(qǐng)求。

按照以上步驟操作后,WordPress 應(yīng)該可以在二級(jí)目錄下正常運(yùn)行并正確加載主題。