提问人:Rockhoof 提问时间:9/8/2022 最后编辑:Stephen OstermillerRockhoof 更新时间:9/8/2022 访问量:84
名称中带有 & 符号的网页突然停止加载(“错误请求”)
Webpage with ampersand in its name suddenly stopped loading ("bad request")
问:
我的老板要求我从头开始改造他的商业网站。我对网页设计很陌生,并且边走边学。我们的虚拟主机创建了一个 WordPress 登台网站,我可以在原始网站保持正常运行的同时工作。最近我们遇到了一个真正的问题:我们原始(当前)网站上一个非常重要的页面的文件名包含与号。十多年来,它为客户完美加载,但现在突然拒绝加载,为我们尝试过的任何浏览器返回“错误请求”错误消息。页面的 URL 采用以下格式:
www.example.com/Gems&Rocks.htm
我在 HTML 代码中将“&”的所有实例以及与之关联的文件名更改为“n”,这让页面再次运行。问题是,互联网上还有数百个其他页面以原始名称反向链接到这个重要页面。我的老板坚持要我找到一种方法来获取带有 & 符号的原始文件名,这样我们就不会失去业务。他认为这都是我的错,但我绝对没有做任何事情来改变旧网站。网络主机的技术告诉我,他对此无能为力,而且这个紧急问题不是由他所做的任何事情引起的,因为他一年多来没有更改网络服务器上的任何内容。他说“&”是一个保留字符,无论如何都不应该出现在路径名中。尽管如此,我们的页面加载了很多年。
在网上搜索对我没有好处,就好像我是世界上唯一遇到过这个问题的人。但肯定有人发生过这样的事情。所以我想我的具体问题是:
- 名称中带有“&”的页面是否突然停止为所有人加载,或者只是我们的网站?
- 有没有办法“欺骗”我们的网站加载页面,而不是决定“&”是一个“糟糕的请求”?
- 是否可以设置URL重定向器,将用户从“Gems&Rocks.htm”发送到?
GemsnRocks.htm
答:
“错误请求”错误来自您的虚拟主机的服务器。如果它以前有效,但现在显示该错误,则服务器上必须发生了某些更改。
您可以重定向该请求。您不会说您的虚拟主机正在使用什么服务器。它可能是 Apache 的某个版本,并且您可能有可用的配置。一种选择可能是将类似以下内容放入文件中:.htaccess
.htaccess
RedirectMatch 301 ^/Gems\&Rocks\.htm$ https://example.com/GemsnRocks.htm
这是否可行取决于您运行的服务器及其配置方式。
评论