我在.htaccess
中设置了404错误页面,它运行良好。
ErrorDocument 404 somedir/404.php
现在,我正试图弄清楚当没有权限的用户试图访问某些页面时,如何显示该页面。
好的,到目前为止我试过什么?
逻辑表示,如果我将用户重定向到某个不存在的页面,该页面将触发404服务器响应,或者我可以将他重定向到404.php
。正确,有效。
header ("location: /404.php");
exit;
通过这种方式,URL从用户要求的一个更改为(在本例中)http://www.mydomain.com/404/php
。我不想改变它!我想让用户看到他请求的地址,不管那个页面是受保护的还是根本不存在。
当然,我可以绕过并加载404.php
,但这让我头疼,因为它的模板引擎是如何工作的。tplEngine是如何控制模板的,如果需要,我将把它作为"B计划"。
有没有什么简单的方法可以做到这一点而不需要复杂的工作?
您可以更改文档标题以显示404错误。
header('HTTP/1.0 404 Not Found');
之后,您可以使用file_get_contents()加载404.php页面。URL将保持不变。
您可以包含404.php
而不是header
函数并返回自定义状态:
include ( "404.php" );
exit;
并且从404.php
有这个:
http_response_code( 404 );