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

如何在Odoo服务器的Nginx中实现带自定义查询参数的页面重定向

实现新域名重定向至Odoo指定页面并保留查询参数

需求说明

云服务器部署的Odoo实例可通过https://odoodomain.net访问,需配置新域名https://odoojobs.net,将所有对该域名的请求(包含路径和查询参数)重定向至https://odoodomain.net/jobs/开头的对应页面。例如:

  • 请求https://odoojobs.net/1?order=date → 重定向至https://odoodomain.net/jobs/1?order=date
  • 请求https://odoojobs.net → 重定向至https://odoodomain.net/jobs

修改Nginx配置方案

在现有Nginx配置基础上,添加以下两个server块,并确保SSL证书支持新域名(或为odoojobs.net单独配置证书):

1. 新增HTTP到HTTPS的重定向(针对odoojobs.net)

server {
    listen 80;
    server_name odoojobs.net;
    # 将HTTP请求重定向至HTTPS,保留完整请求路径
    return 301 https://odoojobs.net$request_uri;
}

2. 新增HTTPS server块处理重定向逻辑

server {
    listen 443 ssl;
    server_name odoojobs.net;
    access_log /var/log/nginx/odoojobs_access.log;
    error_log /var/log/nginx/odoojobs_error.log;

    # SSL配置:替换为odoojobs.net对应的证书文件路径
    ssl_certificate /path/to/odoojobs.net.crt;
    ssl_certificate_key /path/to/odoojobs.net.key;

    # 核心重定向规则:将请求路径拼接至/jobs后,重定向到目标域名
    location / {
        # 使用rewrite捕获路径,$uri包含除查询参数外的路径,$is_args和$args保留查询参数
        rewrite ^/(.*)$ https://odoodomain.net/jobs/$1$is_args$args permanent;
    }
}

配置参数说明

  • $uri:匹配请求的路径部分(不含查询参数),比如请求/1时,$uri就是/1
  • $is_args:如果存在查询参数则为?,否则为空字符串
  • $args:完整的查询参数内容,比如order=date
  • permanent:返回301永久重定向,利于搜索引擎收录

验证与生效

  1. 检查Nginx配置语法:nginx -t
  2. 重启Nginx服务:systemctl restart nginx
  3. 测试不同请求路径,确认重定向后URL正确且查询参数保留

内容的提问来源于stack exchange,提问作者Jeremy Gillbert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 09:05:34