如果它只是對於這種情況(你編程重定向到B.aspx),那麼爲什麼不把東西查詢字符串來說明重定向來自何處。這將更有可能適用於多種瀏覽器類型和設備。
這種方法的一個優點是,您將能夠區分重定向到B.aspx和直接鏈接(通過您的一個頁面上的鏈接或從輸入URL的用戶到地址庫)到頁面B.aspx。
referrer是客戶端作爲HTTP請求的一部分提供的內容。因此,你不能依賴它。
順便說一句,這個問題是相關的: Request.UrlReferrer null?
更新 考慮您的意見目前還不清楚這是不是「編輯的所有文件」等簡單的解決辦法。我懷疑全球搜索/替換可能是你最好的選擇。
更多背景:如果您使用Fiddler(或任何其他的http調試工具),您應該能夠看到在執行重定向時Referrer頭沒有被填充。例如,這是一個重定向的結果(即,HTTP 302響應引起IE重定向到另一個頁):
GET /webapplication1/WebForm3.aspx HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Accept-Language: en-GB
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; MS-RTC LM 8; Zune 3.0)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: (removed)
這裏是通過點擊在計算器上的「問題」鏈接生成的HTTP請求。 com:
GET /questions HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Referer: https://stackoverflow.com/questions/772780/finding-previous-page-url
Accept-Language: en-GB
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618; MS-RTC LM 8; Zune 3.0)
Accept-Encoding: gzip, deflate
Host: stackoverflow.com
Connection: Keep-Alive
您可以看到由頁面上的鏈接生成的更高版本會生成Referer標頭。
你爲什麼要這麼做?也許有其他解決方案更容易對您的問題 – eKek0 2009-04-21 14:19:27
在我的情況下,當ASPX頁面加載來自CDN的靜態內容時,我需要知道引用者。解決方案(在我的情況下,您的里程可能會有所不同)是從HttpRequest.Params.Get(「HTTP_REFERER」)中提取值。 – jerhewet 2011-12-23 19:09:41
Last ToString缺少parans。此特定實例也不需要ToString()。 – DeadlyChambers 2015-03-25 21:43:06