我正在爲採用請求的URL的404頁面編寫catch-all操作方法,用正則表達式提取羅嗦的比特(\w+)*
和將這些以空格分隔的位發送給搜索引擎以生成建議頁面的列表。當我嘗試在我的MVC中訪問它時,ServerVariables [「UNENCODED_URL」]爲空
問題是,ServerVariables["UNENCODED_URL"]
在Action方法中似乎不可用。然而,其他服務器變量是。
我可以使用ServerVariables["URL"]
連同ServerVariables["QUERY_STRING"]
,兩者都可用。但在某些情況下,這會遺漏可能包含有關用戶意圖的有效信息的部分網址。
例如,如果惡意形成的網址是
/test/007/words/something-with-a-dot.xyz/these-words-are-neglected/?stuff-in-querystring
那麼「URL」和「QUERY_STRING」被發現爲"/test/007/words/something-with-a-dot.xyz"
和"stuff-in-querystring"
「URL」忽略而直言一切什麼照顧就像一個文件擴展名。所以這還不夠。
那麼UNENCODED_URL怎麼了?
我怎樣才能得到它的等價物?
就是這樣! - HttpContext.Request.RawUrl。順便說一句,我正在嘗試HttpContext.Request.ServerVariables [「UNENCODED_URL」],但在帖子中保持簡短。 – Faust