1

我的两个子域没有正确路由。

这是我的中间件类

MIDDLEWARE_CLASSES = [
    'subdomains.middleware.SubdomainURLRoutingMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',

如您所见,SubdomainURL 路由中间件位于 Common 之上。

配置是这样的:

ROOT_URLCONF = 'deltaforce.urls'

SUBDOMAIN_URLCONFS = {
    'api': 'errorPage.urls',
    None: 'interface.urls',
}

问题是 abc.com 和 api.abc.com 都路由到 None/ interface.urls

我从每个页面的 404 页面中了解到相同的内容。deltaforce.urls和之间的区别interface.urls是默认管理控制台没有显示,这是一个很好的迹象,表明它没有使用ROOT_URLCONF,但api也显示出类似的行为,因为错误页面中唯一的页面是 404,我正在使用它来测试它。它的 404 页面显示了来自界面的 url 列表。

这里还有一些可能很重要的东西:

ALLOWED_HOSTS = [".abc.com"]

abc.com和其他子域有一个/etc/hosts文件,最后这一切都在一个 nginx 代理后面,它根据 404 页面上请求的 url 正确传递主机头。

4

0 回答 0