如何在php中控制页面的显示状态为404,如何在PHP中显示Apache的默认404页面

对于上述情况,我知道的唯一可能的方法是在index.php中具有这种类型的php代码:

if (pageNotInDatabase) {

header('Location: ' . $_SERVER["REQUEST_URI"] . '?notFound=1');

exit;

}

然后稍微修改你的.htaccess像这样:

Options +FollowSymlinks -MultiViews

RewriteEngine on

RewriteCond %{SCRIPT_FILENAME} !-f

RewriteCond %{QUERY_STRING} !notFound=1 [NC]

RewriteRule ^(.*)$index.php?p=$1 [NC,L,QSA]

这样Apache将会为这个特殊情况显示默认的404页面,因为额外的查询参数?notFound = 1,从php代码中添加,而在.htaccess页面中的负数检查与下一次不会转发到index.php.

PS:像/ foo这样的URI,如果在数据库中找不到,浏览器中将会变成/ foo?notFound = 1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值