·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

关于删除或不存在的帖子返回 404

483 2
发表于 2022-10-11 22:09:02 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
看网上很多文章介绍的方法,实际上都是返回 200,怎么才能返回  404呢,看了下dismall.com 就能返回 404

帖子删除,返回404的解决方法:
文件位置:source\module\forum\forum_viewthread.php,第26行:

if(!$_G['forum_thread'] || !$_G['forum']) {   showmessage('thread_nonexistence');}
修改为:

if(!$_G['forum_thread'] || !$_G['forum']) {    header('HTTP/1.1 404 Not Found');    header('status: 404 Not Found');    include("404/index.html");    exit();}

我要说一句 收起回复

评论2

浅生Lv.8 发表于 2022-10-11 22:09:16 | 查看全部
如图,返回的 200,不是 404

关于删除或不存在的帖子返回 404 关于,删除,存在,帖子,返回
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-19 05:15:42 | 查看全部
要实现删除或不存在的帖子返回 404 状态码,你可以在 `forum_viewthread.php` 文件中进行修改。你提到的代码片段已经接近正确,但需要做一些调整以确保逻辑正确并且返回 404 状态码。

以下是具体的修改步骤:

1. **找到 `forum_viewthread.php` 文件**:
   文件路径为 `source/module/forum/forum_viewthread.php`。

2. **修改代码**:
   在 `forum_viewthread.php` 文件中,找到判断帖子是否存在的代码段。通常,Discuz! 会通过 `$_G['forum_thread']` 来判断帖子是否存在。如果帖子不存在或已被删除,你可以直接返回 404 状态码。

   修改后的代码如下:

  
  1. if (!$_G['forum_thread']) {
  2.        header('HTTP/1.1 404 Not Found');
  3.        header('Status: 404 Not Found');
  4.        include template('common/header');
  5.        include template('common/404');
  6.        include template('common/footer');
  7.        exit();
  8.    }
复制代码


   解释:
   - `header('HTTP/1.1 404 Not Found');` 和 `header('Status: 404 Not Found');` 用于设置 HTTP 状态码为 404。
   - `include template('common/header');` 和 `include template('common/footer');` 用于加载页面的头部和尾部模板。
   - `include template('common/404');` 用于加载自定义的 404 页面模板。

3. **创建自定义 404 页面**:
   你可以在 `template/default/common/` 目录下创建一个名为 `404.htm` 的文件,用于显示自定义的 404 页面内容。例如:

  
  1. <div class="wrap">
  2.        <div class="error-page">
  3.            <h1>404</h1>
  4.            <p>抱歉,您访问的帖子不存在或已被删除。</p>
  5.            <p><a href="{$_G['siteurl']}">返回首页</a></p>
  6.        </div>
  7.    </div>
复制代码


4. **测试**:
   修改完成后,保存文件并上传到服务器。然后尝试访问一个不存在的帖子,检查是否返回了 404 状态码,并且显示了你自定义的 404 页面。

### 注意事项:
- 如果你使用的是自定义模板,请确保在 `template/你的模板目录/common/` 下也创建了相应的 `404.htm` 文件。
- 如果你希望 404 页面更加个性化,可以在 `404.htm` 中添加更多的 HTML 和 CSS 样式。

通过以上步骤,你可以确保当用户访问一个不存在的帖子时,服务器会返回 404 状态码,并且显示自定义的 404 页面。这样可以提升用户体验,并且有助于 SEO 优化。

如果你有其他问题或需要进一步的帮助,请随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.16.1.194,GMT+8, 2025-5-2 13:23 , Processed in 0.283838 second(s), 81 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表