WordPress在Nginx二级目录下绑定根域名的配置方法

来自:素雅营销研究院

头像 方知笔记
2025年05月08日 12:46

WordPress作为最流行的内容管理系统之一,经常需要部署在各种服务器环境中。本文将详细介绍如何在Nginx服务器上,将WordPress安装在二级目录,同时使用根域名访问的配置方法。

为什么需要这种配置

许多情况下,我们可能希望:

  • 将WordPress安装在子目录(如/blog)而非网站根目录
  • 保持网站根目录用于其他静态页面或应用
  • 但对外仍使用根域名(如example.com)访问WordPress内容

这种配置在以下场景特别有用:

  1. 已有主站,需要新增博客功能
  2. 需要保持URL简洁美观
  3. 服务器上运行多个应用

Nginx配置步骤

1. 基础目录结构

假设网站根目录为/var/www/html,我们将WordPress安装在/var/www/html/blog目录下。

/var/www/html/
├── index.html       # 主站首页
├── blog/            # WordPress安装目录
│   ├── wp-admin/
│   ├── wp-content/
│   └── wp-includes/
└── other-files      # 其他主站文件

2. Nginx服务器块配置

修改Nginx配置文件(通常在/etc/nginx/sites-available/your-site):

server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;

# WordPress在/blog目录下的配置
location /blog {
try_files $uri $uri/ /blog/index.php?$args;
}

# 处理PHP请求
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

# 重写规则:将根路径请求指向/blog目录
location / {
try_files $uri $uri/ /blog$uri /blog$uri/ /blog/index.php?$args;
}
}

3. WordPress配置调整

在WordPress安装目录(/blog)下的wp-config.php文件中添加:

define('WP_SITEURL', 'https://example.com/blog');
define('WP_HOME', 'https://example.com');

或者在WordPress后台设置中:

  1. 登录WordPress后台(example.com/blog/wp-admin)
  2. 进入”设置”→”常规”
  3. 设置:

常见问题解决

1. 样式和资源加载失败

确保wp-config.php中的URL设置正确,并检查所有链接是否使用相对路径或正确的绝对路径。

2. 后台登录问题

如果无法登录后台,尝试:

  • 清除浏览器缓存
  • 检查.htaccess文件权限
  • 确认Nginx配置中PHP处理正确

3. 固定链接失效

在WordPress后台:

  1. 进入”设置”→”固定链接”
  2. 点击”保存更改”(即使不做任何修改),这会重写.htaccess文件

性能优化建议

  1. 启用缓存:安装WP Super Cache或W3 Total Cache插件
  2. Nginx缓存:添加fastcgi缓存配置
  3. CDN集成:将静态资源托管到CDN
  4. OPcache:启用PHP OPcache加速

安全注意事项

  1. 限制wp-admin目录访问:
location /blog/wp-admin {
allow your.ip.address;
deny all;
}
  1. 禁用目录浏览:
location ~ /\. {
deny all;
}
  1. 定期更新WordPress核心、主题和插件

通过以上配置,您可以成功将安装在Nginx服务器二级目录下的WordPress通过根域名访问,同时保持网站结构的清晰和URL的简洁。