我尝试使用 HttpRequest 的各种方法显示 url,我也尝试了 VirtualPathUtility 对象,但我从来没有能够显示默认的隐藏部分“default.aspx”......检索的方法或属性是什么这部分网址?
原因是,我非常接近在应用程序级别创建一个 404,它通过在 URL 的映射路径上使用 File.Exist() 来捕获所有 404,甚至是 html 页面,不幸的是,这在默认页面上不起作用。
我见过很少有文章试图做相反的事情,当它发生时删除 default.aspx,这里不是这种情况。
编辑:这是我正在尝试的:
string fullOrigionalpath = context.Request.CurrentExecutionFilePath.ToString();
bool newUrl = System.IO.File.Exists(context.Server.MapPath(fullOrigionalpath));
if (!newUrl) throw new HttpException(404,"page not found");
现在你看,如果页面是localhost/lexus/default.aspx,它可以正常工作,没有错误,但是如果我输入地址http://localhost/lexus/,就会抛出错误,因为如果你尝试输出fullOriginalPath,它没有“default.aspx”部分,所以 Exists 返回 false!你有更好的方法来检查物理文件的有效性吗?