请选择 进入手机版 | 继续访问电脑版



吾爱汇站网官方联系方式

工作时间: 周一到周五早上09:00-11:00, 下午03:00-05:00, 晚上20:30-22:30(周六、日休息)
QQ: 211985957  168528823  97147700  53150916 汇聚、帮助、交流   E-Mail: postmaster@5ihz.cn
用户交流QQ群
1群21532443 2群413446685 ←提醒:请勿重复加群,谢谢!(本站提供低价收费技术服务,详情联系在线客服)
查看: 3190|回复: 25

discuz论坛门户栏目、分页的伪静态方案

[复制链接]

87

主题

366

帖子

867

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
867
发表于 2019-6-17 13:20:57 | 显示全部楼层 |阅读模式
  1. Discuz后台的伪静态配置不包含门户频道页的伪静态配置。应该是考虑到频道页的URL地址变化太多的原因。下面,我们就来开发源码,加上这个功能。
  2. 第一步:加上语言包中的记录:
  3. 根目录下:source\language\lang_admincp.php ,找到setting_seo_rewritestatus_portal_article 这一行,大概在1500行左右,搜索一下吧。

  4. 在这句下面加上一句:
复制代码
  1. 'setting_seo_rewritestatus_portal_list' => '门户频道页',
复制代码
第二步:在后台加上设置项
根目录下:source\function\function_admincp.php ,找到rewritedata函数,在if语句的,两个大括号中,加上下面两段程序
上面一段加上
  1. if (in_array('portal_list', $_G['setting']['rewritestatus'])) {
  2.             $data['search']['portal_list'] = "/" . $_G['domain']['pregxprw']['portal'] . "\?mod\=list&(amp;)?catid\=(\d+)(&page\=(\d+))?"([^\>]*)\>/e";
  3.             $data['replace']['portal_list'] = "rewriteoutput('portal_list', 0, '\\1', '\\3', '\\5', '\\6')";
  4.         }
复制代码
下面一段加上
  1. $data['rulesearch']['portal_list'] = 'list-{catid}-{page}.html';
  2.         $data['rulereplace']['portal_list'] = 'portal.php?mod=list&catid={catid}&page={page}';
  3.         $data['rulevars']['portal_list']['{catid}'] = '([0-9]+)';
  4.         $data['rulevars']['portal_list']['{page}'] = '([0-9]+)';
复制代码

第三步:兼容栏目页URL地址设置
找到文件:
根目录source\function\function_portal.php 下的函数getportalcategoryurl
重新写成下面的代码:
  1. function getportalcategoryurl($catid) {
  2.     if (empty($catid))
  3.         return '';
  4.     loadcache('portalcategory');
  5.     $portalcategory = getglobal('cache/portalcategory');
  6.     if ($portalcategory[$catid]) {
  7.         $url = str_replace('&', '&', $portalcategory[$catid]['caturl']);
  8.         $url = str_replace('&', '&', $url);
  9.         $url = str_replace('http://'.$_SERVER['HTTP_HOST'].'/', '', $url);
  10.         return $url;
  11.     } else {
  12.         return '';
  13.     }
  14. }
复制代码

第四步:设置前台页面URL地址切换
根目录\source\function\function_core.php 这个文件中找到:函数rewriteoutput
在一串的if … else if中加上一段
  1. }elseif ($type == 'portal_list') {
  2.         list(,,, $id, $page, $extra) = func_get_args();
  3.         $r = array(
  4.             '{catid}' => $id,
  5.             '{page}' => $page ? $page : 1,
  6.         );
复制代码

第五步:设置output_replace函数真假检索分页链接,实现伪静态
根目录\source\function\function_core.php 这个文件中找到:函数output_replace,在其代码:
  1. $content = preg_replace($_G[‘setting’][‘output’][‘preg’][‘search’], $_G[‘setting’][‘output’][‘preg’][‘replace’], $content);
复制代码
上方加入下面两行代码
  1.   $_G['setting']['output']['preg']['search']['index']='/portal\.php\?mod\=list&catid\=([0-9]+)&(amp;)?page\=([0-9]+)/';
  2.        $_G['setting']['output']['preg']['replace']['index']="list-$1-$3.html";
复制代码

第五步:设置iis或Apache的伪静态规则
Discuz系统设置里面有伪静态的规则,自动生成的。全局-》SEO设置-》查看当前的 Rewrite 规则,找到规则就加载到iis或apache上面,这就大公告成了!
回复

使用道具 举报

0

主题

309

帖子

628

积分

高级会员

Rank: 4

积分
628
发表于 2019-6-17 13:22:26 | 显示全部楼层
好,很好,非常好!
回复

使用道具 举报

7

主题

314

帖子

679

积分

高级会员

Rank: 4

积分
679
发表于 2019-6-17 15:58:11 | 显示全部楼层
顶楼主啦..希望楼主多发精品好帖啦.....
回复

使用道具 举报

3

主题

297

帖子

613

积分

高级会员

Rank: 4

积分
613
发表于 2019-6-17 16:40:47 | 显示全部楼层
好资源啊,支持一下
回复

使用道具 举报

恐怖的秋千 该用户已被删除
发表于 2019-6-17 17:36:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

10

主题

298

帖子

620

积分

高级会员

Rank: 4

积分
620
发表于 2019-6-18 08:24:11 | 显示全部楼层
真实我需要的,回复看下, 真能用吗额
回复

使用道具 举报

12

主题

316

帖子

656

积分

高级会员

Rank: 4

积分
656
发表于 2019-6-18 09:08:53 | 显示全部楼层
太生气了,无法HOLD啦 >_<......为什么我才发现吾爱汇站网这样的好站!
回复

使用道具 举报

1

主题

287

帖子

591

积分

高级会员

Rank: 4

积分
591
发表于 2019-6-18 09:30:27 | 显示全部楼层
好诱惑啊 但是不会用
回复

使用道具 举报

8

主题

290

帖子

608

积分

高级会员

Rank: 4

积分
608
发表于 2019-6-18 09:35:03 | 显示全部楼层
激动人心,无法言表!
回复

使用道具 举报

0

主题

297

帖子

606

积分

高级会员

Rank: 4

积分
606
发表于 2019-6-18 10:42:03 | 显示全部楼层
这个也不错的哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


快速回复 返回顶部 返回列表