注意:我不是系统管理员,因此我对编辑系统配置文件的知识和能力有限。
最近全部使用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
无论用户来自哪里。
答案 0 :(得分:0)
显然问题是双重的:
1)根据此帖子here,ErrorDocument链接不得具有域名;它必须采用
格式ErrorDocument 404 /admin/404
2)在.conf文件中,没有打开RewriteEngine;它被评论出来了。所以我们取消注释以下规则
<VirtualHost 127.0.0.1:80>
...
# RewriteEngine on
# RewriteCond %{HTTP_HOST} ^example\.com [NC]
# RewriteCond %{REQUEST_URI} /$ [NC]
# RewriteRule ^(.*)/$ https://www.example.com/$1 [L,R=301]
...
RedirectMatch permanent ^(.*)/$ https://www.example.com/$1
</VirtualHost>
现在,找到了404页面,$ _SERVER([&#39; REQUEST_URI&#39;])拥有相应的资源。