是否可以将特定域的请求路由到不同的 URL 方案?

问题描述 投票:0回答:1

是否可以将特定域的请求路由到 Django 中的不同 URL 方案?

例如,我有域:

example.com
secret.com
。是否可以针对不同的域名处理不同的URL方案?

django django-urls
1个回答
0
投票

这是一个老问题,但只是想为未来的访问者添加此信息:这可以使用本文中提到的小型自定义中间件

virtual_hosts = {
    "www.example-a.dev": "blog.urls",
    "www.example-b.dev": "links.urls",
    "www.example-c.dev": "links.urls",
}


class VirtualHostMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # let's configure the root urlconf
        host = request.get_host()
        request.urlconf = virtual_hosts.get(host)
        # order matters!
        response = self.get_response(request)
        return response

这将使用不同的

urls.py
文件(即
blog/urls.py
links/urls.py
),具体取决于
HTTP_HOST
标头的值。

© www.soinside.com 2019 - 2024. All rights reserved.