经典 ASP 自定义 404 重定向在 Firefox 或 IE11 中不起作用
Classic ASP Custom 404 Redirect Isn't Working In Firefox or IE11
我正在为专用于 auto/motorcycle 销售的专有 CMS 构建自定义 404 响应页面。我 运行 遇到的问题是,有时 Google 会为经销商库存中的某个单元建立一个页面索引,但此后已被删除,所以我正在为这些建立一个自定义 404 页面实例。我的问题是在保留 404 状态的同时进行重定向。
该页面是用经典语言编写的 ASP。长话短说,IIS 将 404 状态重定向到我正在使用的自定义 ASP 页面,然后将其定向到我的 404 页面......我的想法是,只有当 404 来自一个页面时,它才会显示我的页面缺少库存,然后在其他页面上表现正常。
经过几天的努力整理后,Chrome 中的代码如下:
<%
Response.Status = "404 Not found"
%>
<script language="JScript" ruant="server">
window.location = window.location.origin + "/src/xInventory404.asp";
</script>
<%
Response.End
%>
问题是这在 Firefox 或 Internet Explorer 11 中不起作用,除非我删除 Response.Status
,但如果我这样做,我将失去 404 状态。我不能只使用 Response.Redirect
,因为它会丢失 404 并插入一个 302,我不希望出于 SEO 目的。我也试过 Server.Execute
和 Server.Transfer
,即使在 Chrome 中也没有用。
几周来我一直在研究这个问题,但我在网上看到的任何东西都没有帮助,所以我想看看这里是否有人有其他我可以尝试的想法。有人有什么想法或建议吗?
好的,所以这最终变成了一个双重问题...Firefox 的问题是因为我有 <script language="JScript">
,将其更改为 <script language="JavaScript">
解决了我的问题...根据John 的评论,我从组合中删除了 runat="server"
,看起来这两件事的结合是这里的秘诀。
IE 11 更棘手...原来问题实际上不是我的代码。 IE 有一个显示友好的 http 错误的设置,当我取消选中该选项时它也开始工作。关于客户端浏览器设置,我真的无能为力,所以这有点浪费,但至少我知道是什么原因造成的……在这一点上,仍在使用 IE 11 的人数应该相对较少,所以我很好有了它。
再次感谢您的见解,它确实有助于有一些不同的思考途径,而不是停留在最初将我带到这里的循环思维中。
我正在为专用于 auto/motorcycle 销售的专有 CMS 构建自定义 404 响应页面。我 运行 遇到的问题是,有时 Google 会为经销商库存中的某个单元建立一个页面索引,但此后已被删除,所以我正在为这些建立一个自定义 404 页面实例。我的问题是在保留 404 状态的同时进行重定向。
该页面是用经典语言编写的 ASP。长话短说,IIS 将 404 状态重定向到我正在使用的自定义 ASP 页面,然后将其定向到我的 404 页面......我的想法是,只有当 404 来自一个页面时,它才会显示我的页面缺少库存,然后在其他页面上表现正常。
经过几天的努力整理后,Chrome 中的代码如下:
<%
Response.Status = "404 Not found"
%>
<script language="JScript" ruant="server">
window.location = window.location.origin + "/src/xInventory404.asp";
</script>
<%
Response.End
%>
问题是这在 Firefox 或 Internet Explorer 11 中不起作用,除非我删除 Response.Status
,但如果我这样做,我将失去 404 状态。我不能只使用 Response.Redirect
,因为它会丢失 404 并插入一个 302,我不希望出于 SEO 目的。我也试过 Server.Execute
和 Server.Transfer
,即使在 Chrome 中也没有用。
几周来我一直在研究这个问题,但我在网上看到的任何东西都没有帮助,所以我想看看这里是否有人有其他我可以尝试的想法。有人有什么想法或建议吗?
好的,所以这最终变成了一个双重问题...Firefox 的问题是因为我有 <script language="JScript">
,将其更改为 <script language="JavaScript">
解决了我的问题...根据John 的评论,我从组合中删除了 runat="server"
,看起来这两件事的结合是这里的秘诀。
IE 11 更棘手...原来问题实际上不是我的代码。 IE 有一个显示友好的 http 错误的设置,当我取消选中该选项时它也开始工作。关于客户端浏览器设置,我真的无能为力,所以这有点浪费,但至少我知道是什么原因造成的……在这一点上,仍在使用 IE 11 的人数应该相对较少,所以我很好有了它。
再次感谢您的见解,它确实有助于有一些不同的思考途径,而不是停留在最初将我带到这里的循环思维中。