我一直在经历堆栈溢出但无法找到答案。我可以让500页显示如下:
<customErrors mode="On">
<error statusCode="500"
redirect="~/500.html"/>
</customErrors>
我想要做的是根据应用语言呈现页面的本地化版本。问题是我不想通过我在很多其他帖子中找到的Error Controller-View解决方案,以防App中存在实际错误(缺少DLL等)。所以我必须提供一个纯HTML页面,但我需要能够选择本地化的,或指示IIS如何找到它。
有什么想法吗?
答案 0 :(得分:0)
这只是我的头脑,你不能使用URL重写/重定向规则,使用浏览器定义的重定向到〜/ 500.en-us.html和〜/ 500的Accept-Language。 de.html或者你可能有路径设置?
web.config中的示例规则:
<rule name="HTTP-Language-Error-Redirect" stopProcessing="true">
<match url="^500.html$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_ACCEPT_LANGUAGE}" pattern="^([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?$" />
</conditions>
<action type="Redirect" url="500.{C:1}.html" redirectType="Found" />
</rule>
我的想法是,redwrite / redirect规则可以正常工作,因为它是处理请求而不是应用程序代码的IIS进程的一部分。因此,理论上,如果WebApp由于某种原因被破坏,它仍然可以工作。我的假设可能完全错了,我认为我会给它一个诚实的镜头。