最少更改,实现 discuz 论坛的地址栏采用标题拼音

问题描述:

最近有SEO的兄弟求我帮忙将 discuz 论坛的帖子标题搞到 url 里面去,比如

帖子为 "为什么花这样红"  ,对应的地址就是 weishenmohuazheyanghong-t-1-1.html

据说这样有助于搜索引擎搜录

问题解决:

我查看了discuz  的php代码,发现只需要做很小的改动就可以实现此功能:

现代码如下:

include/global.func.php 修改

function rewrite_thread($tid, $page = 0, $prevpage = 0, $extra = '') {

$pinyin = pinyin(getthread($tid));
 return '<a href="'.$pinyin.'-t-'.$tid.'-'.($page ? $page : 1).'-'.($prevpage && !IS_ROBOT ? $prevpage : 1).'.html"'.stripslashes($extra).'>';

}

function rewrite_forum($fid, $page = 0, $extra = '') {

$pinyin = pinyin(getforum($fid));
 return '<a href="'.$pinyin.'-f-'.$fid.'-'.($page ? $page : 1).'.html"'.stripslashes($extra).'>';

}

在文件最下添加

include_once 'phpsir_rewrite_pinyin.php';

新增 phpsir_rewrite_pinyin.php 文件内容

<?php
//phpsir
function pinyin($str,$ishead=0,$isclose=1)
{
 global $pinyins;
 global $charset;

$str = strip_tags($str);

if($charset == 'utf-8')
 {
  $str = iconv('utf-8','gbk',$str);
 }

//echo $str."<br/>";
 $restr = "";
 $str = trim($str);
 $slen = strlen($str);
 if($slen<2) return $str;
 if(count($pinyins)==0){
  $fp = fopen(dirname(__FILE__)."/pinyin.db","r");
  while(!feof($fp)){
   $line = trim(fgets($fp));
   $pinyins[$line[0].$line[1]] = substr($line,3,strlen($line)-3);
  }
  fclose($fp);
 }
 for($i=0;$i<$slen;$i++){
  if(ord($str[$i])>0x80)
  {
   $c = $str[$i].$str[$i+1];
   $i++;
   if(isset($pinyins[$c])){
    if($ishead==0) $restr .= $pinyins[$c];
    else $restr .= $pinyins[$c][0];
   }else $restr .= "-";
  }else if( eregi("[a-z0-9]",$str[$i]) ){ $restr .= $str[$i]; }
  else{ $restr .= "-";  }
 }
 if($isclose==0) unset($pinyins);
 //echo $restr."<br/>";

$a = array("/\-{2,}/","/^\-{1,}/");
 $b = array("-","");
 $restr =  preg_replace($a,$b,$restr);

return $restr;
}

function getthread($tid)
{
 global $db;
 global $tablepre;
 $a  = $db->query("select * from  {$tablepre}threads where tid = $tid ");
 $a =  $db->fetch_array($a);
 return $a['subject'];

}

function getforum($fid)
{
 global $db;
 global $tablepre;
 $a  = $db->query("select * from  {$tablepre}forums where fid = $fid ");
 $a =  $db->fetch_array($a);
 return $a['name'];

}

// end phpsir
?>

还有一点就是修改 .htaccess 加入

RewriteRule ^(.*)-f-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$2&page=$3
RewriteRule ^(.*)-t-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$2&extra=page\%3D$4&page=$3

搞定

llypp QQ  733905 于家中

时间: 2024-10-03 20:59:10

最少更改,实现 discuz 论坛的地址栏采用标题拼音的相关文章

图文解说:Discuz论坛优化基础设置第一弹

Discuz相信站长朋友们会很熟悉,几乎我们逛的大多数论坛都是采用这个程序做的,对从事seo行业的站长朋友们就更加熟悉了,外链发布最多的就是论坛.例如A5论坛.28推论坛.seowhy论坛.推一把论坛等等都是采用的Discuz,甚至很多站长自己的网站本身是用Discuz论坛做的.今天长沙seo小编看到了moonseo有一节课说的就是DZ论坛部分设置方法,顺便总结了下,陆续会为大家分享DZ在设置上的细节问题. 一.后台的基本参数设置. 1.网站的基本信息设置.以下以A5论坛为例,设置的网站名称.备

discuz论坛利用Rewrite组件实现防盗链

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;    图片防盗链(也包括其他类型的文件如音频.视频等)机制的目标在于保护自己的服务器资源特别是网络带宽不被非法滥用,合理的防盗链机制能够让网站有效地远离不法网站的侵扰,让网站资源最大限度地为自己的访问用户服务,而不是不知不觉地默默为其他网站作贡献.同时,必须注意的是,任何防盗链机制都不是百分之百"可靠"的,事实上,大多数网站的防盗链设置都是在保护

Discuz!论坛整合QQ登陆 首先要解除站长和用户的疑虑

中介交易 SEO诊断 淘宝客 云主机 技术大厅 Discuz! X1.5 正式版发布已快一个月,之前盛传的Discuz!论坛整合QQ账户登陆如今已经实现.昨日该功能已在官方体验站点正式公测(http://www.discuz.org ).这个版本实现四项功能:一.使用QQ帐号密码注册和登陆论坛更方便快捷;二.发帖可选同时推送到QQ空间动态(标题+简单摘要+原帖地址);三.分享论坛主题到QQ空间(标题+简单摘要+原帖地址);四.建立QQ空间的认证空间,聚拢用户并随时将站内优秀内容推送给粉丝用户.能

千万级记录的Discuz论坛导致MySQL CPU 100%的优化笔记_Mysql

发现此主机运行了几个 Discuz 的论坛程序, Discuz论坛的好几个表也存在着这个问题.于是顺手一并解决,cpu占用再次降下来了. 前几天,一位朋友通过这篇文章找到了我,说他就是运行最新的 discuz 版本,MySQL 占用 CPU 100%,导致系统假死,每天都要重启好几次,花了一个多月的时间一直没有解决,希望我帮忙一下.经过检查,他的这个论坛最重要的几个表中,目前 cdb_members 表,有记录 6.2 万:cdb_threads 表,有记录 11万:cdb_posts表,有记录

如何在百度BAE安装discuz论坛之全方位解析

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断淘宝客 站长团购 云主机 技术大厅 兔子在各大搜索网站搜了下有关BAE安装discuz论坛的方法,至今还没发现到有效成熟的解决方案,都是些百度BAE安装wordpress教程及其他博客安装教程,难道安装discuz就没人知道吗,还是技术不成熟?还是不原公开所谓的信息技术?兔子不妒忌那些有技术的人才,兔子鄙视那些了解一点又不愿意公开还在网上炫耀技术的屌丝,本身就是一个互联

分享discuz论坛签名代码对照表,使用discuz的朋友可以收藏

01.加图片:[img]图片地址[/img] 例如:[img]yun_qi_img/201409151312200406.jpg[/img] [img=88,31]图片地址[/img](链接图像并限制大小) 02.文字:[SIZE=4]你想加的文字[/SIZE](size=.这个是文字大小,可以自己修改) 03.加超链接:[URL=链接地址]链接显示的文字[/URL] 在新窗口打开连接:"> 04.加图片链接:[URL=链接地址][img]图片地址[/img][/URL] 13.贴flas

mysql-Apache/2.4.18 (Unix) PHP/7.0+MySql5.7搭建Discuz论坛问题

问题描述 Apache/2.4.18 (Unix) PHP/7.0+MySql5.7搭建Discuz论坛问题 跟着步骤安装完,打开论坛首页页面空白,后台界面可以正常显示,然后Ucenter也是页面空白,求解~~~~~~ 解决方案 mysql+apache+php+discuz 论坛搭建 解决方案二: http://www.discuz.net/thread-3699198-1-1.html高手在民间,,php7.0搭配食用的discuz X3.2安装包

如何在discuz论坛帖子的个性签名前后插入广告代码

discuz论坛|插入|广告|广告代码|论坛|签名|discuz   几日前,一个朋友问我在discuz论坛中如何像动网一样在每楼帖子的末尾添加广告代码,因为在默认的帖子下方广告代码里添加高度稍高和宽度稍宽的代码都不美观.当时因为时间仓促,没有解决.刚刚有点时间,就顺便将这个代码实现了.    好了,不多说了,下面开始介绍添加的办法. 难易程度:极简单修改文件:viewthread.htm效果演示:http://bbs.dxszz.com/thread-1075-1-1.html       

如何修改discuz!论坛程序的google搜索栏

google|程序|论坛|搜索|discuz        在给discuz!论坛后台的扩展设置里启用 Google 搜索,然后选择要显示 Google 搜索框的位置,有:在论坛首页显示.在主题列表页面显示.在主题内容页面显示,推荐全部选择.至于后面的选择语言那就随便了,因为我们不调用这个. 找到论坛根目录下\include\javascript的google.js文件,将其内容替换为: document.writeln('<form method="get" action=&q