diff --git a/odoo/addons/base/models/ir_http.py b/odoo/addons/base/models/ir_http.py index ba771a95753..aa4b7e862c6 100644 --- a/odoo/addons/base/models/ir_http.py +++ b/odoo/addons/base/models/ir_http.py @@ -269,7 +269,9 @@ class IrHttp(models.AbstractModel): for url, endpoint, routing in cls._generate_routing_rules(mods, converters=cls._get_converters()): xtra_keys = 'defaults subdomain build_only strict_slashes redirect_to alias host'.split() kw = {k: routing[k] for k in xtra_keys if k in routing} - routing_map.add(werkzeug.routing.Rule(url, endpoint=endpoint, methods=routing['methods'], **kw)) + rule = werkzeug.routing.Rule(url, endpoint=endpoint, methods=routing['methods'], **kw) + rule.merge_slashes = False + routing_map.add(rule) cls._routing_map[key] = routing_map return cls._routing_map[key] diff --git a/odoo/http.py b/odoo/http.py index b4729c20917..90eeeaa165e 100644 --- a/odoo/http.py +++ b/odoo/http.py @@ -1268,7 +1268,9 @@ class Root(object): _logger.info("Generating nondb routing") routing_map = werkzeug.routing.Map(strict_slashes=False, converters=None) for url, endpoint, routing in odoo.http._generate_routing_rules([''] + odoo.conf.server_wide_modules, True): - routing_map.add(werkzeug.routing.Rule(url, endpoint=endpoint, methods=routing['methods'])) + rule = werkzeug.routing.Rule(url, endpoint=endpoint, methods=routing['methods']) + rule.merge_slashes = False + routing_map.add(rule) return routing_map def __call__(self, environ, start_response):