在我的项目中,我不想向用户显示查询字符串值。对于那种情况,我在 asp.net 中使用了 URL 重写。所以我的网址如下所示。
http://localhost/test/default.aspx?id=1
到
http://localhost/test/general.aspx
第一个 URL 将被重写为第二个 URL,但它仍将使用该查询字符串值执行 default.aspx 页面。这工作正常。
但我的问题是,用户有什么方法可以在浏览器中找到原始 URL?
在我的项目中,我不想向用户显示查询字符串值。对于那种情况,我在 asp.net 中使用了 URL 重写。所以我的网址如下所示。
http://localhost/test/default.aspx?id=1
到
http://localhost/test/general.aspx
第一个 URL 将被重写为第二个 URL,但它仍将使用该查询字符串值执行 default.aspx 页面。这工作正常。
但我的问题是,用户有什么方法可以在浏览器中找到原始 URL?
答案是不。
浏览器无法知道最终服务请求的实际脚本是什么——它只知道它发送到服务器的内容(除非服务器发出重定向,但随后浏览器会向重定向目标发出新请求)。
由于 URL 重写需要传入请求并将其路由到不同的资源,我相信答案是肯定的。在您请求的网络流量中的某个地方,http://localhost/test/default.aspx?id=1
它被重写为新的请求http://localhost/test/general.aspx
。
虽然这可能会隐藏原始请求,使其无法在浏览器中显示,但在某些时候它确实将原始 URL 作为 HTTP GET 发送。
按照建议,使用 Firebug 或 Fiddler 来嗅探流量。
我想出了我的问题的答案。我们可以很容易地找到重写后的 url。如果我们在浏览器中看到该页面的视图源,那么我们可以看到带有查询字符串值的原始 url。