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

ODOO.SH无法将http://www.域名正确重定向至https://www.?求可行方案

Odoo.sh多站点HTTP到HTTPS(www前缀)重定向解决方案

由于Odoo.sh官方拒绝调整Nginx配置实现HTTP到HTTPS的自动重定向,可通过以下几种可行方案解决:

方案1:利用Odoo自带网站重定向功能

进入对应网站的设置 > 网站 > 重定向,添加规则:

  • 来源URL:http://www.odoosh-website.com/*
  • 目标URL:https://www.odoosh-website.com/$1
  • 重定向类型:永久重定向(301)

该方案无需开发,适合站点数量较少的场景,每个站点需单独配置对应规则。

方案2:通过CDN实现前置重定向

使用Cloudflare等CDN服务接管域名解析,在CDN后台配置页面规则:

  • 匹配条件:http://www.odoosh-website.com/*
  • 操作:转发URL(状态码301永久重定向)
  • 目标URL:https://www.odoosh-website.com/$1

CDN会在请求到达Odoo.sh之前完成重定向,不依赖Odoo内部配置,适合多站点批量处理。

方案3:自定义Odoo控制器实现全局重定向

开发简单的自定义模块,通过控制器拦截HTTP请求并强制重定向:

创建模块的controllers/main.py文件:

from odoo import http
from odoo.http import request

class HTTPRedirectController(http.Controller):
    @http.route('/*', type='http', auth="public", website=True, sitemap=False, priority=100)
    def redirect_to_https(self, **kwargs):
        req = request.httprequest
        if req.scheme == 'http' and req.host.startswith('www.'):
            new_url = f"https://{req.host}{req.path}"
            if req.query_string:
                new_url += f"?{req.query_string}"
            return request.redirect(new_url, code=301)
        # 若无需重定向,传递请求至原有路由
        return request.dispatch()

安装该模块后,所有指向http://www.开头域名的请求会被自动重定向到对应HTTPS地址,适合技术团队维护的多站点场景。

内容的提问来源于stack exchange,提问作者Ahrimann Steiner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:08:26