将WordPress地址从blog.site.com改为site.com/blog的配置问题求助
解决site.com/blog访问子域名WordPress的链接跳转问题
问题根源
你的问题出在Nginx路径匹配规则不精确,以及WordPress站点URL生成时的斜杠拼接错误,同时缺少必要的反向代理头信息导致WordPress无法正确识别当前访问地址。
解决方案
1. 修正Nginx反向代理配置
修改第一台服务器上site.com的Nginx配置,调整location规则并补充代理头:
location ^~ /blog/ { proxy_pass https://blog.site.com/; proxy_ssl_server_name on; # 确保WordPress能正确识别访问域名和协议 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
^~ /blog/:精确匹配以/blog/开头的路径,避免误匹配类似/blogpost这类无关路径- 补充的
proxy_set_header:让WordPress获取到正确的访问域名、客户端IP和协议,保证生成的链接地址正确
修改后执行以下命令重启Nginx生效:
sudo nginx -t && sudo systemctl restart nginx
2. 修正WordPress站点配置
直接修改WordPress根目录下的wp-config.php文件,添加以下代码(优先用这种方式避免后台设置失效):
define('WP_HOME', 'https://site.com/blog'); define('WP_SITEURL', 'https://site.com/blog');
若习惯通过后台操作,可登录blog.site.com的WordPress后台,进入设置 → 常规,将**站点地址(URL)和WordPress地址(URL)**都设置为https://site.com/blog
3. 刷新WordPress固定链接规则
登录WordPress后台,进入设置 → 固定链接:
- 临时选择一个不同的链接格式(比如“朴素”),点击保存
- 再改回你原来使用的链接格式,点击保存
这一步会刷新WordPress的rewrite规则,确保新的站点URL生成正确的链接。
验证
完成以上步骤后,访问site.com/blog,点击文章链接应该会正常跳转到site.com/blog/post-name,不会再出现缺失斜杠或跳转到子域名的问题。
内容的提问来源于stack exchange,提问作者Parsa Haghighi
相关产品推荐
相关产品推荐

