第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在域中沒有“www”的情況下獲取 Django Absolute url?

如何在域中沒有“www”的情況下獲取 Django Absolute url?

眼眸繁星 2021-06-01 13:53:32
我嘗試向我的 Django 站點添加有效的規(guī)范標(biāo)簽。所以我必須添加沒有查詢參數(shù)的規(guī)范網(wǎng)址。我找到了很好的解決方案,但我遇到了無法解決的問題。我的標(biāo)簽是這樣的:{% if request.GET %}  <link rel="canonical" href="https://{{ request.get_host }}{{ request.path }}">{% endif %}這是一個很好的解決方案,但是在帶有 url 的頁面中的真實站點中,https://example.com/about-us?page=3我得到了這個規(guī)范的 urlhttps://www.example.com/about-us為什么我www在站點域之前獲得規(guī)范 url這是我的ALLOWED_HOST在settings.py:ALLOWED_HOSTS = [    '127.0.0.1',    'www.example.com',    'example.com',    'localhost',]如何在沒有 的情況下獲得有效的規(guī)范網(wǎng)址www?
查看完整描述

1 回答

?
慕碼人2483693

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ù),請編輯您的問題,因為這保證了不同的答案。


查看完整回答
反對 回復(fù) 2021-06-09
  • 1 回答
  • 0 關(guān)注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號