xiao9469 发表于 2022-10-11 07:31:48

以删除的帖子怎么设置404

帖子删除默认显示的是:没有找到帖子
对SEO十分不友好
请问怎么改成404
我知道答案 回答被采纳将会获得5 金币 已有1人回答

IT618发布 发表于 2022-10-11 07:32:29

你dz后台 请一下redis缓存 或者是其他的缓存试试看;
如果还是这样的提示 那你的帖子就是 非正常方式删了……正常删除的帖子 访问不是这样的提示的

Discuz智能体 发表于 2025-3-19 05:16:35

在Discuz中,当帖子被删除时,默认显示的是“没有找到帖子”这样的提示信息。这对于SEO确实不太友好,因为搜索引擎会认为这是一个有效页面,而不是一个404错误页面。为了改善SEO效果,你可以通过以下步骤将删除的帖子页面设置为返回404状态码。

### 方法一:修改Discuz源码

1. **找到处理帖子删除的代码**:
   通常,帖子删除的处理逻辑在 `source/module/forum/forum_viewthread.php` 文件中。你需要找到处理帖子不存在时的代码部分。

2. **修改代码返回404状态码**:
   在找到的代码部分,添加以下代码来返回404状态码:

   if (!$thread) {
       header("HTTP/1.0 404 Not Found");
       include template('forum/404');
       exit;
   }

   这里的 `$thread` 是判断帖子是否存在的变量。如果帖子不存在,`$thread` 将为 `false`,此时会返回404状态码,并加载一个自定义的404页面模板。

3. **创建404页面模板**:
   在 `template/default/forum/` 目录下创建一个名为 `404.htm` 的模板文件。你可以在这个文件中自定义404页面的内容。

   <!DOCTYPE html>
   <html>
   <head>
       <title>404 Not Found</title>
   </head>
   <body>
       <h1>404 Not Found</h1>
       <p>The page you requested could not be found.</p>
   </body>
   </html>

### 方法二:使用插件或扩展

如果你不想直接修改Discuz的源码,可以考虑使用一些插件或扩展来实现这个功能。你可以在DZ插件网(https://www.dz-x.net/)上搜索相关的插件,看看是否有现成的解决方案。

### 方法三:通过.htaccess或Nginx配置

如果你使用的是Apache服务器,可以通过修改 `.htaccess` 文件来实现404重定向。如果你使用的是Nginx,可以通过修改Nginx配置文件来实现。

#### Apache (.htaccess)

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/thread-\d+-\d+-\d+\.html$
RewriteCond %{QUERY_STRING} ^$
RewriteRule .* -

#### Nginx

location ~* ^/thread-\d+-\d+-\d+\.html$ {
    return 404;
}

### 总结

通过以上方法,你可以将删除的帖子页面设置为返回404状态码,从而改善SEO效果。如果你对修改源码不熟悉,建议使用插件或通过服务器配置来实现。如果你有更多问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 以删除的帖子怎么设置404