【问题标题】:Classic ASP Custom 404 Redirect Isn't Working In Firefox or IE11经典 ASP 自定义 404 重定向在 Firefox 或 IE11 中不起作用
【发布时间】:2020-07-06 18:33:45
【问题描述】:

我正在为专用于汽车/摩托车销售的专有 CMS 构建自定义 404 响应页面。我遇到的问题是,有时谷歌会为经销商库存中的一个单元编入索引,但此后已被删除,所以我正在为这些实例构建一个自定义 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 并插入我不想用于 SEO 的 302。我也尝试过Server.Execute 和Server.Transfer,即使在 Chrome 中也无法使用。

我已经在这个圈子里转了几个星期,但我在网上看到的任何东西都没有帮助,所以我想我会看看这里是否有人有我可以尝试的其他想法。有人有什么想法或建议吗?

【问题讨论】:

  • 这是什么,谁认为这是个好主意?出于某种原因,IIS 内置了对自定义错误页面的支持。
  • 这里没有任何争论说它很乱,但这是我继承的系统。老实说,如果由我决定,我只会响应。重定向该死的东西并完成它......粘性检票口是保留 404 的要求。我正在尝试以一种在我给定的参数范围内工作的方式来做这件事。如果我想做的事情是不可能的,我可以接受,但我必须先探索我的所有选择沿着那条路前进。
  • 那么您是否尝试了 IIS 中的自定义错误页面方法,而不是尝试手动强制自定义 404?
  • 您应该能够替换自定义 404 页面,或者至少使用 Request.ServerVariables("URL") 添加条件检查以检查触发 404 的地址的相对路径,然后添加您的内容或使用 Server.Transfer() 加载您非常具体的自定义 404 页面。
  • 我注意到您的 JS 具有属性 ruant="server",我认为您的意思是 runat="server"。我不确定window.location 是否可以在服务器端代码中工作,因为它看不到您的浏览器。还要注意&lt;script runat="server"&gt;&lt;/script&gt; 中的代码在&lt;% %&gt; 中的代码之前执行

标签: asp-classic http-status-code-404


【解决方案1】:

好的,所以这最终成为一个双重问题...... Firefox 的问题是因为我有&lt;script language="JScript"&gt;,将其更改为&lt;script language="JavaScript"&gt; 解决了我的问题......根据约翰的评论,我删除了@ 987654323@ 混合在一起,这两者的结合似乎就是这里的秘诀。

IE 11 更棘手...原来问题实际上不是我的代码。 IE 有一个设置来显示友好的 http 错误,当我取消选中该选项时,它也开始工作。对于客户端浏览器设置,我真的无能为力,所以这是一种清洗,但至少我知道是什么原因造成的......而且此时仍在使用 IE 11 的人数应该相对较少,所以我很好用它。

再次感谢您的见解,它确实有助于有一些不同的途径来思考,而不是停留在最初将我带到这里的循环思维中。

【讨论】:

  • 你似乎仍然在以一种倒退的方式对待他。制作一个自定义 404 页面(由 IIS 触发)并使用它来显示您想要的任何内容。
猜你喜欢
  • 1970-01-01
  • 2014-05-19
  • 2011-02-24
  • 2014-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多