You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置问题:子路径部署独立根目录WordPress站点,启用固定链接后跳转异常

Nginx配置问题:子路径部署独立根目录WordPress站点,启用固定链接后跳转异常

Hey,我看了你的配置和问题描述,这个问题其实挺常见的,主要是Nginx的alias规则和WordPress的站点URL配置没配合好,咱们一步步来解决:

问题根源分析

你的核心问题出在两个地方:

  • Nginx的/de location里的try_files规则指向错误,导致启用固定链接后,请求会跳转到主站的index.php
  • WordPress本身的站点URL配置没对应上子路径,就算Nginx配置对了,WP自己生成的链接也会指向主域名

具体修改步骤

1. 修正Nginx配置

把你当前的/de location块替换成下面的内容,关键修改点我都标出来了:

location ^~ /de {
    alias /var/www/example.com.de;
    # 关键修改:最后要指向/de/index.php,而不是根目录的/index.php
    try_files $uri $uri/ /de/index.php$is_args$args;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        # alias模式下$request_filename能正确解析实际文件路径
        fastcgi_param SCRIPT_FILENAME $request_filename;
        # 额外添加:帮WordPress识别当前子路径,避免生成错误链接
        fastcgi_param REQUEST_URI $request_uri;
        fastcgi_param SCRIPT_NAME /de/index.php;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    }
}
  • ^~修饰符:让这个location优先匹配,避免和外层的~ \.php$规则冲突,确保/de下的PHP请求都走内部的处理逻辑
  • try_files的最后一项改为/de/index.php$is_args$args:当请求的文件/目录不存在时,交给德语站的index.php处理,而不是主站的
  • 新增的两个fastcgi_param:帮助WordPress正确识别当前的子路径上下文,生成符合预期的链接

2. 配置WordPress站点URL

这一步非常关键,WordPress会根据站点URL生成所有页面链接,不设置的话就算Nginx配置对了,WP自己也会跳回主域名:

  • 如果能正常登录德语站后台(暂时用非固定链接模式),进入设置->常规,把**WordPress地址(URL)和站点地址(URL)**都设置为https://www.example.com/de(如果用HTTPS的话)
  • 如果无法登录后台,直接修改德语站的wp-config.php文件,添加以下两行:
define('WP_HOME','https://www.example.com/de');
define('WP_SITEURL','https://www.example.com/de');

3. 验证修改

修改完Nginx配置后,重启Nginx服务生效:

sudo systemctl restart nginx

然后刷新德语站页面,启用固定链接,测试各个页面,应该就不会跳回主域名了。

备注:内容来源于stack exchange,提问作者yucelm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 11:59:32