假設我在 www 上運行一個網站。域名 1 .com
在“.htaccess”中,我重定向到外部“ domain2 ”,如下所示:
RewriteEngine On
RewriteBase /
RewriteRule ^mydirectory/(.*)$ http://www.domain2.com/mydirectory/$1 [NC,L]
請注意,在 RewriteRule 中,我沒有傳遞標志[R]或[R=301].
現在我從網路瀏覽器打開http://www.domain1.com/mydirectory/。
在該外部“domain2”的日志中,究竟會顯示為:
- 客戶端IP
- HTTP 引薦來源網址(referer)
客戶端 IP 是來自實際的客戶端 Web 瀏覽器,還是來自我在“domain1”上運行的 Web 服務器?
是否有任何提示表明它是從我的“域 1”“重定向”的?例如,在“推薦人”欄位中?
Web 客戶端是否會收到有關任何“重定向”狀態代碼的通知?
uj5u.com熱心網友回復:
客戶端 IP 是來自實際的客戶端 Web 瀏覽器,還是來自我在“域”中運行的 Web 服務器?
“實際客戶端 Web 瀏覽器”。(或者,當該客戶端向 發出請求時通常會報告任何 IP domain2.com,因為它們可能通過代理服務器、VPN 等進行連接)
來自的重定向回應domain1.com是客戶端向 發出全新請求的指令domain2.com。
是否有任何提示表明它是從我的“域 1”“重定向”的?例如,在“推薦人”欄位中?
如果您在用戶第一次到達時立即進行重定向,則不會domain1.com。通常,瀏覽器會保留Referer先前“非重定向”請求的標頭。重定向本身不會生成Referer.
因此,如果您直接向domain1.com(即 no Referer)發出請求,則 noReferer將在重定向的請求中傳遞到domain2.com。
但是,如果用戶遵循從another-domain.comto domain1.com(即another-domain.com是Referer)的鏈接,并且您發出“重定向” from domain1.comtodomain2.com那么瀏覽器將another-domain.com作為 the Referer(默認情況下)傳遞。
如果您允許用戶在發出重定向之前瀏覽domain1.com一段時間(從一個頁面導航到另一個頁面 - 這自然會生成Referer),domain2.com那么domain1.com可能會被視為Referer客戶端向 發出請求的時間domain2.com。至少,默認情況下,這可以通過在參考站點上設定Referrer-Policy(在現代瀏覽器中)來覆寫。
當然,用戶可能已經將他們的瀏覽器配置為禁止發送,Referer并且原始網站(例如another-domain.com,或domain1.com)也可以Referer通過在現代瀏覽器中設定Referrer-Policy來禁止發送。舊瀏覽器(例如 IE11)不支持此功能,因此您受瀏覽器使用的任何默認設定的支配。
Web 客戶端是否會收到有關任何“重定向”狀態代碼的通知?
是的,這就是重定向。
如果domain1.com重定向到domain2.com那么...
domain1.com將 3xx 重定向回應發送回客戶端,并帶有LocationHTTP 回應標頭,告訴客戶端要向其發出請求的 URL。然后,客戶端的瀏覽器向
Location標頭中所述的 URL 發出新請求。
RewriteEngine On RewriteBase / RewriteRule ^mydirectory/(.*)$ http://www.domain2.com/mydirectory/$1 [NC,L]
請注意,這會生成 302(臨時)重定向,即使狀態代碼 (R或R=301) 未明確說明。(該RewriteBase指令在這里完全是多余的。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/342790.html
上一篇:Jetpackcompose:可以設定DropdownMenu高度以顯示下一個專案
下一篇:在模板<classIt>函式中,It是一個迭代器,我可以讓It::value_type為vector::iterators和array::iterators作業嗎?
