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

Discuz! X3.4主题分类和分类信息伪静态设置方法(修改 ...

1168 2
发表于 2020-7-7 09:14:23 | 查看全部 阅读模式

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

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

×
实现方法:
编辑:
\source\function\function_admincp.php
查找:(约1250~1253行)
  1. if(in_array('forum_forumdisplay', $_G['setting']['rewritestatus'])) {                        $data['search']['forum_forumdisplay'] = "/".$_G['domain']['pregxprw']['forum']."\?mod\=forumdisplay&(amp;)?fid\=(\w+)(&page\=(\d+))?"([^\>]*)\>/";                        $data['replace']['forum_forumdisplay'] = 'rewriteoutput(\'forum_forumdisplay\', 0, $matches[1], $matches[3], $matches[5], $matches[6])';                }
复制代码
在其下行添加:
  1.         if(in_array('forum_forumdisplay_type', $_G['setting']['rewritestatus'])) {            $data['search']['forum_forumdisplay_type'] = "/".$_G['domain']['pregxprw']['forum']."\?mod\=forumdisplay&(amp;)?fid\=(\w+)(&typeid\=(\w+))?(&filter\=typeid)?(&typeid\=(\w+))?(&filter\=typeid)?(&page\=(\d+))?"([^\>]*)\>/e";            $data['replace']['forum_forumdisplay_type'] = "rewriteoutput('forum_forumdisplay_type', 0, $matches[1], $matches[3], $matches[8], $matches[11], $matches[12])";        }
复制代码
查找:(约1299~1302行)
  1. $data['rulesearch']['forum_forumdisplay'] = 'forum-{fid}-{page}.html';                $data['rulereplace']['forum_forumdisplay'] = 'forum.php?mod=forumdisplay&fid={fid}&page={page}';                $data['rulevars']['forum_forumdisplay']['{fid}'] = '(\w+)';                $data['rulevars']['forum_forumdisplay']['{page}'] = '([0-9]+)';
复制代码
在其下行添加:
  1.         $data['rulesearch']['forum_forumdisplay_type'] = 'forum-{fid}-{typeid}-{page}.html';        $data['rulereplace']['forum_forumdisplay_type'] = 'forum.php?mod=forumdisplay&fid={fid}&filter=typeid&typeid={typeid}&page={page}';        $data['rulevars']['forum_forumdisplay_type']['{fid}'] = '(\w+)';        $data['rulevars']['forum_forumdisplay_type']['{typeid}'] = '(\w+)';        $data['rulevars']['forum_forumdisplay_type']['{page}'] = '([0-9]+)';
复制代码
编辑:
\source\function\function_core.php
查找:(约940~945行)
  1. if($type == 'forum_forumdisplay') {                list(,,, $fid, $page, $extra) = func_get_args();                $r = array(                        '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],                        '{page}' => $page ? $page : 1,                );
复制代码
在其下行添加:
  1.     }    if($type == 'forum_forumdisplay') {        list(,,, $fid, $page, $extra) = func_get_args();        $r = array(            '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],            '{page}' => $page ? $page : 1,        );    } elseif($type == 'forum_forumdisplay_type') {        list(,,, $fid, $typeid, $page, $extra) = func_get_args();        $r = array(        '{fid}' => empty($_G['setting']['forumkeys'][$fid]) ? $fid : $_G['setting']['forumkeys'][$fid],        '{typeid}' => $typeid,        '{page}' => $page ? $page : 1,        );
复制代码
编辑:
/source/language/lang_admincp.php
查找:(约1509行)
  1. 'setting_seo_rewritestatus_forum_forumdisplay' => '社区主题列表页',
复制代码
在其下行添加:
  1. 'setting_seo_rewritestatus_forum_forumdisplay_type' => '社区主题分类页',
复制代码

勾选提交之后,点击右上角“查看当前的 Rewrite 规则”
在你的伪静态规则添加你对应主机类型的相关伪静态规则,
举个例子,比如
Apache Web Server(虚拟主机用户)环境:
.htaccess 添加如下规则,即可生效。
伪静态规则:
  1. RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^forum-(\w+)-(\w+)-([0-9]+)\.html[        DISCUZ_CODE_160        ]nbsp;forum.php?mod=forumdisplay&fid=$1&filter=typeid&typeid=$2&page=$3&%1
复制代码
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

Discuz智能体Lv.8 发表于 2025-3-12 06:22:37 | 查看全部
在处理Discuz! X3.4主题分类伪静态设置时,请严格遵循以下步骤:

**一、核心文件修改**

1. **function_admincp.php修改**
  1. // 在约1250行插入
  2. if(in_array('forum_forumdisplay_type', $_G)) {
  3.     $data = "/".$_G."\?mod\=forumdisplay&(amp;)?fid\=(\w+)(&typeid\=(\w+))?(&filter\=typeid)?(&typeid\=(\w+))?(&filter\=typeid)?(&page\=(\d+))?"(*)\>/e";
  4.     $data = "rewriteoutput('forum_forumdisplay_type', 0, $matches, $matches, $matches, $matches, $matches)";
  5. }

  6. // 在约1299行插入
  7. $data = 'forum-{fid}-{typeid}-{page}.html';
  8. $data = 'forum.php?mod=forumdisplay&fid={fid}&filter=typeid&typeid={typeid}&page={page}';
  9. $data = '(\w+)';
  10. $data = '(\w+)';
  11. $data = '(+)';
复制代码


2. **function_core.php调整**
  1. // 约940行插入
  2. } elseif($type == 'forum_forumdisplay_type') {
  3.     list(,,, $fid, $typeid, $page, $extra) = func_get_args();
  4.     $r = array(
  5.         '{fid}' => empty($_G) ? $fid : $_G,
  6.         '{typeid}' => $typeid,
  7.         '{page}' => $page ? $page : 1,
  8.     );
复制代码


**二、语言包更新**
  1. // lang_admincp.php约1509行插入
  2. 'setting_seo_rewritestatus_forum_forumdisplay_type' => '主题分类列表页',
复制代码


**三、伪静态规则配置**

各服务器环境规则示例:

1. **Apache规则(修正版)**
  1. RewriteRule ^forum-(\w+)-(\w+)-(\d+)\.html$ forum.php?mod=forumdisplay&fid=$1&filter=typeid&typeid=$2&page=$3 [QSA,L]
复制代码


2. **Nginx规则**
  1. rewrite ^/forum-(\w+)-(\w+)-(\d+)\.html$ /forum.php?mod=forumdisplay&fid=$1&filter=typeid&typeid=$2&page=$3 last;
复制代码


3. **IIS Web.config**
  1. <rule name="主题分类伪静态">
  2.     <match url="^forum-(\w+)-(\w+)-(\d+)\.html$" />
  3.     <action type="Rewrite" url="forum.php?mod=forumdisplay&fid={R:1}&filter=typeid&typeid={R:2}&page={R:3}" appendQueryString="true" />
  4. </rule>
复制代码


**四、注意事项**
1. 修改前务必通过FTP下载原始文件备份
2. 建议使用专业代码编辑器(如Notepad++)避免编码问题
3. 修改后需到后台"全局->SEO设置->URL静态化"中勾选新增的规则项
4. 若出现500错误,检查服务器error_log定位具体行号

**五、效果验证**
完成修改后,访问测试地址:
`http://您的域名/forum-版块ID-分类ID-页码.html`
应正常显示对应分类下的主题列表

如遇到模板兼容性问题,可到DZ插件网技术社区(www.dz-x.net)的开发者交流版块提交具体报错信息,我们的技术团队会提供进一步支持。建议使用专业版Discuz!维护工具进行修改校验。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-20 13:39:55 | 查看全部
要实现Discuz! X3.4主题分类和分类信息的伪静态设置,您可以按照以下步骤进行操作。这些步骤涉及到修改Discuz!的核心文件,因此在操作之前请务必备份相关文件,以防止出现意外情况。

### 1. 修改 `function_admincp.php` 文件

首先,您需要编辑 `\source\function\function_admincp.php` 文件。

#### 查找以下代码(大约在1250~1253行):
  1. if(in_array('forum_forumdisplay', $_G)) {
  2.     $data = "/".$_G."\?mod\=forumdisplay&(amp;)?fid\=(\w+)(&page\=(\d+))?"(*)\>/";
  3.     $data = 'rewriteoutput(\'forum_forumdisplay\', 0, $matches, $matches, $matches, $matches)';
  4. }
复制代码


#### 在其下方添加以下代码:
  1. if(in_array('forum_forumdisplay_type', $_G)) {
  2.     $data = "/".$_G."\?mod\=forumdisplay&(amp;)?fid\=(\w+)(&typeid\=(\w+))?(&filter\=typeid)?(&typeid\=(\w+))?(&filter\=typeid)?(&page\=(\d+))?"(*)\>/e";
  3.     $data = "rewriteoutput('forum_forumdisplay_type', 0, $matches, $matches, $matches, $matches, $matches)";
  4. }
复制代码


#### 查找以下代码(大约在1299~1302行):
  1. $data = 'forum-{fid}-{page}.html';
  2. $data = 'forum.php?mod=forumdisplay&fid={fid}&page={page}';
  3. $data = '(\w+)';
  4. $data = '(+)';
复制代码


#### 在其下方添加以下代码:
  1. $data = 'forum-{fid}-{typeid}-{page}.html';
  2. $data = 'forum.php?mod=forumdisplay&fid={fid}&filter=typeid&typeid={typeid}&page={page}';
  3. $data = '(\w+)';
  4. $data = '(\w+)';
  5. $data = '(+)';
复制代码


### 2. 修改 `function_core.php` 文件

接下来,您需要编辑 `\source\function\function_core.php` 文件。

#### 查找以下代码(大约在940~945行):
  1. if($type == 'forum_forumdisplay') {
  2.     list(,,, $fid, $page, $extra) = func_get_args();
  3.     $r = array(
  4.         '{fid}' => empty($_G) ? $fid : $_G,
  5.         '{page}' => $page ? $page : 1,
  6.     );
  7. }
复制代码


#### 在其下方添加以下代码:
  1. } elseif($type == 'forum_forumdisplay_type') {
  2.     list(,,, $fid, $typeid, $page, $extra) = func_get_args();
  3.     $r = array(
  4.         '{fid}' => empty($_G) ? $fid : $_G,
  5.         '{typeid}' => $typeid,
  6.         '{page}' => $page ? $page : 1,
  7.     );
  8. }
复制代码


### 3. 修改 `lang_admincp.php` 文件

最后,您需要编辑 `/source/language/lang_admincp.php` 文件。

#### 查找以下代码(大约在1509行):
  1. 'setting_seo_rewritestatus_forum_forumdisplay' => '社区主题列表页',
复制代码


#### 在其下方添加以下代码:
  1. 'setting_seo_rewritestatus_forum_forumdisplay_type' => '社区主题分类页',
复制代码


### 4. 更新伪静态规则

完成上述修改后,您需要在后台勾选并提交相关设置。然后,点击右上角的“查看当前的 Rewrite 规则”,并根据您的主机类型添加相应的伪静态规则。

例如,如果您使用的是 **Apache Web Server(虚拟主机用户)**,您可以在 `.htaccess` 文件中添加以下规则:

  1. RewriteCond %{QUERY_STRING} ^(.*)$
  2. RewriteRule ^forum-(\w+)-(\w+)-(+)\.html$ forum.php?mod=forumdisplay&fid=$1&filter=typeid&typeid=$2&page=$3&%1
复制代码


### 5. 测试伪静态

完成上述步骤后,您可以访问您的网站,测试主题分类和分类信息的伪静态链接是否正常工作。

### 注意事项

- **备份**:在进行任何文件修改之前,请务必备份相关文件。
- **测试**:在生产环境中应用这些更改之前,建议在测试环境中进行测试,以确保一切正常。
- **服务器配置**:确保您的服务器支持伪静态规则,并且已正确配置。

通过以上步骤,您应该能够成功实现Discuz! X3.4主题分类和分类信息的伪静态设置。如果在操作过程中遇到任何问题,欢迎随时咨询。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:3.22.63.154,GMT+8, 2025-4-18 14:44 , Processed in 0.477874 second(s), 75 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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