我有一个 ASP.NET 页面来处理“404 页面未找到”,它是通过在我的 web.config 文件中配置<customErrors>
部分并在 IIS 管理器中设置 404 错误的自定义错误页面来设置的。
它对我网站根目录中的页面按预期工作,但在站点的子目录中不起作用 - 我的自定义错误页面中的超链接和内容具有错误的 url 基础。
我的错误页面中的所有链接都是服务器端控件(runat="server"),并且它们的链接基于“~/”。
当我浏览http://mysite/nosuchfolder/nosuchfile
带有链接的页面时,页面呈现的链接认为它是从根目录提供的,而不是从根目录提供服务,nosuchfolder
因此所有链接在浏览器中都被破坏,因为浏览器基于nosuchfolder
.
有什么方法可以“告诉” ASP.NET 页面以不同的文件夹/文件名重新建立链接?
笔记:
- 大部分页面模板是从母版页呈现的
- 我正在运行 IIS6 并将自定义错误 404 设置为 URL:
/error404.aspx
- 在我的 web.config 文件中,我已将
<customErrors>
部分配置为重定向到/error404.aspx
- 作为一种解决方法,我
<base>
在页面中使用 HTML 标记,但我想避免这种情况 - 我不想将所有基于“~/”的链接更改为“/”或内联基础黑客