是否可以将特定域的请求路由到 Django 中的不同 URL 方案?
例如,我有域:
example.com
和secret.com
。是否可以针对不同的域名处理不同的URL方案?
这是一个老问题,但只是想为未来的访问者添加此信息:这可以使用本文中提到的小型自定义中间件:
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
标头的值。