1 回答

TA貢獻(xiàn)1860條經(jīng)驗 獲得超9個贊
因為您正在使用request.get_host
,這將解析為用戶在瀏覽器中輸入的任何內(nèi)容。您可能已將 DNS 記錄設(shè)置為接受帶或不帶 www 的域。Django 并不關(guān)心它所服務(wù)的域,除非/除非您使用它的 Sites 框架(您的示例代碼不涉及 Sites 框架,所以我猜你不是)。因此,Django 僅根據(jù) URL 路徑進(jìn)行響應(yīng),而忽略域。
您是在問是否可以從入站請求中刪除“www”?當(dāng)然,您可以在 Web 服務(wù)器(apache/nginx 等)層使用特定于這些 Web 服務(wù)器的重定向來執(zhí)行此操作。或者您可以讓請求通過 Web 服務(wù)器并在應(yīng)用程序服務(wù)器層 (Django) 使用自定義中間件攔截它。這是一個例子。
請注意,您不能使用Django 中內(nèi)置的重定向應(yīng)用程序,因為它只對路徑進(jìn)行操作,而您想要操作傳入域本身。
因此,您的選擇是:調(diào)整您的 Web 服務(wù)器,或?qū)⒅虚g件模塊添加到您的 Django 項目。
該ALLOWED_HOSTS
設(shè)置與您的問題無關(guān)。
旁白:您的問題有點令人困惑,因為您首先詢問已刪除的查詢參數(shù)?page=3
,然后轉(zhuǎn)而詢問域中的 www。如果您詢問查詢參數(shù),請編輯您的問題,因為這保證了不同的答案。
添加回答
舉報