写ASP程序的朋友都知道,Request.ServerVariables("SCRIPT_NAME")
返回当前页面的相对路径,比如说“http://localhost/bbs/post.asp
”,那么返回的就是“bbs/post.asp
”。但是我在调试ASP程序的时候偶尔发现一个bug
,在 IIS5.1(XP自带)和
IIS6.0(2003自带)中,如果相对路径中包含不止一个“.asp
”,返回值会从第一个“.asp
”末端截断。比如说“http://localhost/iWebOffice.ocx.asp/DocumentList.asp
”,预期返回的应该是“iWebOffice.ocx.asp/DocumentList.asp
”,但实际返回的却是“iWebOffice.ocx.asp
”。
ASP程序中有时需要引用Request.ServerVariables("SCRIPT_NAME")
来自动获取某个文件的完整URL路径,因为这个问题我不得修改我的虚拟目录名称,使其不包含“.asp
”,但总觉得这不是好的解决之道。无意中我想起了另一个变量
Request.ServerVariables("PATH_INFO")
,在任何教程中都指出它和前者作用相同,都用于返回当前页面的路径信息,但我想从名称上看两者在获取信息的方式上至少有所差异吧?动手成“PATH_INFO
”,果不其然,得到了预期的返回结果!
Request.ServerVariables("SCRIPT_NAME")的bug
最新推荐文章于 2022-01-23 20:49:53 发布
本文探讨了ASP编程中Request.ServerVariables("SCRIPT_NAME")与Request.ServerVariables("PATH_INFO")的区别。前者在特定情况下可能会导致路径截断的问题,而后者能更准确地返回完整的路径信息。
358

被折叠的 条评论
为什么被折叠?



