【发布时间】:2018-08-25 23:23:26
【问题描述】:
注意:我不是系统管理员,所以我编辑系统配置文件的知识和能力有些有限。
最近使用全 Https 的服务器没有像切换之前那样显示我们的 404 页面。
未找到
在此服务器上找不到请求的 URL /toh。
此外,在尝试访问时遇到 404 Not Found 错误 使用 ErrorDocument 来处理请求。
在我们的 httpd.conf 页面中,我们有一行
ErrorDocument 404 /admin/404/
当我们将这一行改为
ErrorDocument 404 https://example.com/admin/404/
一切似乎都运行良好; Not Found 错误消失,404 页面正确显示。
然而,
这个 404 页面检测用户最初来自哪里使用
$_SERVER['REQUEST_URI'];
然后该页面将检查数据库,查看该 URI 是否在其中,然后将客户端重定向到适当的页面。
因此,例如,如果用户从以下位置访问页面:
http://example.com/tacos
如果不是有效链接,404 页面会看到 /tacos 链接,在数据库中找到它,并将用户重定向到他/她需要去的地方。
现在,$_SERVER['REQUEST_URI'] 只会吐出
/admin/404
无论用户来自何处。
【问题讨论】:
-
尝试将强制网站进入 https 的规则放在 .htaccess 文件的顶部,然后清除浏览器缓存并进行测试
-
@Mohammed 规则是在 .conf 文件中设置的,而不是在 .htaccess 文件中。但事实证明问题(据我所知)是 RewriteEngine 已关闭。如果愿意,请参阅我的答案以获取更多信息。谢谢。
-
example.com/tacos 如果链接无效,但使用 https 时,网络服务器是否按照您的预期处理它?
-
@Mohammed 是的,打开重写规则并从 ErrorDocument 中取出域名,据我所知,一切都按预期运行