request.serverVariables()“URL”vs“Script_Name”

时间:2009-03-27 12:53:49

标签: url asp-classic request.servervariables

我正在维护一个经典的asp应用程序,在查看代码时,我遇到了两行类似的代码:

Request.ServerVariables("URL")
' Output: "/path/to/file.asp"

Request.ServerVariables("SCRIPT_NAME")
' Output: "/path/to/file.asp"

我不明白......有什么区别?他们都忽略了我设置的URL重写,它将/ path文件夹作为根文档(上面的URL被重写为“/to/file.asp”)

更多信息: 该站点部署在IIS 7

3 个答案:

答案 0 :(得分:7)

URL提供URL的基本部分,不包含任何查询字符串或额外路径信息。对于原始URL,请使用HTTP_URL或UNENCODED_URL。

SCRIPT_NAME正在执行的脚本的虚拟路径。可用于自引用URL。

参见http://www.requestservervariables.com/url 和/ script_name用于定义。

答案 1 :(得分:3)

这可能是IIS 7下的一个错误。

我无法让Request.ServerVariables("URL")Request.ServerVariables("SCRIPT_NAME")返回不同的值。我已经尝试过从包含文件(<!--#include file="file.asp"-->)或Server.Transfer之后调用它们的情况。

答案 2 :(得分:1)

这可能是Server.Transfer的情况吗?

如果您执行server.transfer,我您会得到不同的结果

即。 SCRIPT_NAME会是例如/path/to.transferredfile.asp,而URL将保留为/path/to/file.asp