名称中带有 & 符号的网页突然停止加载(“错误请求”)

Webpage with ampersand in its name suddenly stopped loading ("bad request")

提问人:Rockhoof 提问时间:9/8/2022 最后编辑:Stephen OstermillerRockhoof 更新时间:9/8/2022 访问量:84

问:

我的老板要求我从头开始改造他的商业网站。我对网页设计很陌生,并且边走边学。我们的虚拟主机创建了一个 WordPress 登台网站,我可以在原始网站保持正常运行的同时工作。最近我们遇到了一个真正的问题:我们原始(当前)网站上一个非常重要的页面的文件名包含与号。十多年来,它为客户完美加载,但现在突然拒绝加载,为我们尝试过的任何浏览器返回“错误请求”错误消息。页面的 URL 采用以下格式:

www.example.com/Gems&Rocks.htm

我在 HTML 代码中将“&”的所有实例以及与之关联的文件名更改为“n”,这让页面再次运行。问题是,互联网上还有数百个其他页面以原始名称反向链接到这个重要页面。我的老板坚持要我找到一种方法来获取带有 & 符号的原始文件名,这样我们就不会失去业务。他认为这都是我的错,但我绝对没有做任何事情来改变旧网站。网络主机的技术告诉我,他对此无能为力,而且这个紧急问题不是由他所做的任何事情引起的,因为他一年多来没有更改网络服务器上的任何内容。他说“&”是一个保留字符,无论如何都不应该出现在路径名中。尽管如此,我们的页面加载了很多年。

在网上搜索对我没有好处,就好像我是世界上唯一遇到过这个问题的人。但肯定有人发生过这样的事情。所以我想我的具体问题是:

  1. 名称中带有“&”的页面是否突然停止为所有人加载,或者只是我们的网站?
  2. 有没有办法“欺骗”我们的网站加载页面,而不是决定“&”是一个“糟糕的请求”?
  3. 是否可以设置URL重定向器,将用户从“Gems&Rocks.htm”发送到?GemsnRocks.htm
HTML HTTP URL & 符号

评论


答:

1赞 Stephen Ostermiller 9/8/2022 #1

“错误请求”错误来自您的虚拟主机的服务器。如果它以前有效,但现在显示该错误,则服务器上必须发生了某些更改。

您可以重定向该请求。您不会说您的虚拟主机正在使用什么服务器。它可能是 Apache 的某个版本,并且您可能有可用的配置。一种选择可能是将类似以下内容放入文件中:.htaccess.htaccess

RedirectMatch 301 ^/Gems\&Rocks\.htm$ https://example.com/GemsnRocks.htm

这是否可行取决于您运行的服务器及其配置方式。

评论

0赞 Rockhoof 9/9/2022
根据DomainTools的说法,我公司的虚拟主机似乎使用Microsoft-IIS 7.5版作为其服务器平台。这个平台是否像 Apache 一样处理 .htaccess 文件和 301 重定向?如果是这样,我可能很幸运。
0赞 Stephen Ostermiller 9/9/2022
不,它没有。根据这个线程,IIS中有一个设置 social.msdn.microsoft.com/Forums/en-US/...VerificationCompatibility 将导致错误请求
0赞 Rockhoof 9/10/2022
从外观上看,似乎必须由控制虚拟主机服务器本身的人实施重定向。这是我无法访问的东西。但更多的搜索表明,WordPress有一个可能起作用的插件,称为“重定向”(托管在 redirection.me)。在他们的主页上,他们声明它将在“任何服务器上运行,例如 Apache、Nginx 甚至 IIS,前提是您已经运行了 WordPress 永久链接......”所以它可能会起作用。有人用这个插件有很好的效果吗?