リクエストでサブドメインを読み取り、サブドメインに応じて別のアプリの urls.py を提供するミドルウェアをセットアップしようとしています...しかし、いくつかの不安定な動作が発生しています
これが私のミドルウェアです:
class SubdomainsMiddleware:
def process_request(self, request):
request.domain = request.META['HTTP_HOST']
request.subdomain = ''
parts = request.domain.split('.')
if len(parts) == 3 or (re.match("^localhost", parts[-1]) and len(parts) == 2):
request.subdomain = parts[0]
request.domain = '.'.join(parts[1:])
# set the right urlconf
if request.subdomain == 'foo':
settings.ROOT_URLCONF = 'bqsite.urls'
else:
settings.ROOT_URLCONF = 'dhsite.urls'
私の理解では、これが機能している場合、プロジェクトのルート urls.py は決してヒットしないはずです。あれは正しいですか?Apacheを再起動すると、サイトにdjangoのウェルカム画面が表示されますが、リフレッシュ後に正しいURLファイルが使用されるという、本当に奇妙で不安定な動作が発生しています。