云服务器促销,免费安装宝塔面板!
开启左侧

[DZ教程] 怎么让Discuz!论坛的门户频道页面支持伪静态?

[复制链接]
图片素材 发表于 2017-8-30 00:19:06 | 显示全部楼层 |阅读模式

本站会员必须 邮箱验证成功后 才能发帖。马上注册查阅更多教程,下载海量资源,让你轻松玩做站

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

x
基于代码X3,其它版本源码,请自行验证。0 Z6 T( M; ?3 V
- A1 @" T: T+ n5 g4 g: C9 T
Discuz后台的伪静态配置不包含门户频道页的伪静态配置。应该是考虑到频道页的URL地址变化太多的原因。下面,我们就来开发源码,加上这个功能。
5 c" r& @, h  w( R, N2 g0 w第一步:加上语言包中的记录:
6 Z  M& `- r0 r9 V4 @4 b根目录下:source\language\lang_admincp.php ,找到setting_seo_rewritestatus_portal_article 这一行,大概在1500行左右,搜索一下吧。% i& X- Q9 Y+ b

1 l( g* @' X7 D7 u) x在这句下面加上一句:
  1. 'setting_seo_rewritestatus_portal_list' => '门户频道页',
复制代码
- T0 f' b- `0 @, Z! r5 y! C

; v' T& _. N9 {' X- f: x9 ?
5 H4 {  [* O7 m" Y: q2 i  E第二步:在后台加上设置项$ _7 ^$ I0 V+ H9 R
根目录下:source\function\function_admincp.php ,找到rewritedata函数,在if语句的,两个大括号中,加上下面两段程序4 l# J. t5 h' i* C

, R* R# X" G% W7 S, q. Z上面一段加上
6 K' v( e) B& n+ K6 i: N0 d8 n     
  1.   if (in_array('portal_list', $_G['setting']['rewritestatus'])) {
    0 w- |7 B# w$ A/ S7 l5 C6 E9 N9 l
  2.             $data['search']['portal_list'] = "/" . $_G['domain']['pregxprw']['portal'] . "\?mod\=list&(amp;)?catid\=(\d+)(&page\=(\d+))?"([^\>]*)\>/e";
    2 f. E8 q( Y2 Q- v  }$ @# M3 \
  3.             $data['replace']['portal_list'] = "rewriteoutput('portal_list', 0, '\\1', '\\3', '\\5', '\\6')";$ e; n! d: g. g- H+ Q( y
  4.         }2 n* z% d5 l4 Z8 n
复制代码
$ q- F' }" U! @3 g$ e  b5 o
下面一段加上
  n9 k7 L& }% v* G8 t   
  1.    $data['rulesearch']['portal_list'] = 'list-{catid}-{page}.html';. i# b$ P* w1 i# x; |! B/ Q
  2.         $data['rulereplace']['portal_list'] = 'portal.php?mod=list&catid={catid}&page={page}';
    ) c1 \/ R7 i8 F
  3.         $data['rulevars']['portal_list']['{catid}'] = '([0-9]+)';
    0 I0 p4 T# }+ H& ?
  4.         $data['rulevars']['portal_list']['{page}'] = '([0-9]+)';
复制代码
. W2 c: J( ^7 J# h0 D/ E
# }" h3 n! A6 ^5 C" D$ f' v5 h

" F! A' n( z$ u: q& V. \9 R第三步:兼容栏目页URL地址设置
6 M0 m4 ?+ O1 \找到文件:: M% L: v4 ?# {, {1 z7 D
根目录source\function\function_portal.php 下的函数getportalcategoryurl) F2 Z/ ^, n/ s# \) m. Z& @0 a
重新写成下面的代码:
  o- n9 m- B9 J, x' T
  1. function getportalcategoryurl($catid) {; ^' H4 z4 z/ [# F1 m) `9 }
  2.     if (empty($catid))4 n6 Q' C! K4 p# S% {* J+ [( x! o
  3.         return '';/ \- w. B7 X8 i, C! J" i) c
  4.     loadcache('portalcategory');! {4 v2 M9 s9 N( a
  5.     $portalcategory = getglobal('cache/portalcategory');% K8 q- Q- Q8 e! z
  6.     if ($portalcategory[$catid]) {
    & F6 B, D  E# s  Q; q2 g# v: Y
  7.         $url = str_replace('&', '&', $portalcategory[$catid]['caturl']);9 D7 g" A; e; r' ?
  8.         $url = str_replace('&', '&', $url);, G' ~' W7 [1 {: D9 t7 f& T
  9.         $url = str_replace('http://'.$_SERVER['HTTP_HOST'].'/', '', $url);
    , M$ K# ]* A6 S" [- R; K
  10.         return $url;
    ) K' K3 _' S7 l' s0 i. V
  11.     } else {/ o3 {1 p* ?" p/ u& H4 s8 o
  12.         return '';; T0 S) @# x5 m9 e$ B
  13.     }6 P% [( ~4 D. ?" n; R
  14. }) C  O# z0 T$ j
复制代码
3 `5 W% n& v9 P7 t: l
# M" q# E" b6 B/ s/ }
第四步:设置前台页面URL地址切换, b+ i. Z3 L! a& q! i
根目录00php\source\function\function_core.php  这个文件中找到:函数rewriteoutput
2 W$ z* v; w& \4 j在一串的if ... else if中加上一段
7 S; O7 P! @  v
, ?5 }* Y- J- F5 l3 ]4 [
  1. elseif ($type == 'portal_list') {
      F# |! q2 g0 Q; m, a$ d1 n9 z; X/ n7 ]' S
  2.         list(,,, $id, $page, $extra) = func_get_args();
    4 t& M; M, ?4 Z+ d
  3.         $r = array(
    . z; h+ J( u/ Y  s1 M! e6 ?
  4.             '{catid}' => $id,
    9 ~& E+ m( v# Z  m) P" v
  5.             '{page}' => $page ? $page : 1,
    9 j+ `) e  d8 \4 n( V
  6.         );( W- E4 Y8 Q0 n8 S
  7.     }; y% a5 Y# y- R( v+ X* l
复制代码
& u0 Q4 ]/ u4 `3 P7 V
至此,大功告成。
当流科技-专业Discuz建站、仿站业务,专注处理discuz!论坛挂马,专注提供论坛托管维护服务! 提供Discuz论坛空间、VPS、云服务器!咨询QQ 569160956 778521512
回复

使用道具 举报

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

本版积分规则

精彩课程推荐

抱歉,当前存在网络问题或服务器繁忙,详细错

主讲:我心枫叶 Discuz!教程

Discuz!论坛网盘附件免跳转下载(手机版网

主讲:当流科技 Discuz插件

discuz论坛搬家教程,如何搬迁到新服务器?

主讲:风雨兼程 Discuz!教程

宝塔面板绑定域名无法访问后台怎么解决?

主讲:风雨兼程 服务器学院

Discuz!X3.3全新安装和升级后快速回复框丢

主讲:风雨兼程 Discuz!教程

宝塔面板phpmyadmin 数据库502 Bad Gateway

主讲:当流科技 服务器学院

Discuz! X3.4虚拟人气虚拟用户在线插件 完

主讲:执手天涯 Discuz插件

宝塔面板mysql怎么用navicat 连接数据库呢

主讲:当流科技 服务器学院

商务合作

0551-66191059
service#dangliu.net
点击这里给我发消息
dz论坛/Discuz!论坛新手

关注微信公众号

QQ扫码 加 DZ技术群