GVKun编程网logo

DEDECMS全站伪静态如何设置 DEDECMS伪静态设置办法(dedecms手机伪静态)

16

在本文中,我们将详细介绍DEDECMS全站伪静态如何设置DEDECMS伪静态设置办法的各个方面,并为您提供关于dedecms手机伪静态的相关解答,同时,我们也将为您带来关于DEDECMS5.7伪静态怎

在本文中,我们将详细介绍DEDECMS全站伪静态如何设置 DEDECMS伪静态设置办法的各个方面,并为您提供关于dedecms手机伪静态的相关解答,同时,我们也将为您带来关于DEDECMS 5.7伪静态怎么设置、DedeCMS 5.7系统TAG标签伪静态怎么设置、DedeCMS 5.7系统TAG标签伪静态设置、dedecms tags伪静态完美解决办法的有用知识。

本文目录一览:

DEDECMS全站伪静态如何设置 DEDECMS伪静态设置办法(dedecms手机伪静态)

DEDECMS全站伪静态如何设置 DEDECMS伪静态设置办法(dedecms手机伪静态)

 

1、首先栏目和新闻*好设置成动态浏览,这样才不会生成静态html文件。

  修改数据库

  将所有文档设置为“仅动态”,可以进入数据库管理中,执行下面命令:

  update dede_archives set ismake=-1

  并将ismake的默认值设置为 -1即动态。

  将所有栏目设置为“使用动态页”,可以进入数据库管理中,执行下面命令:

  update dede_arctype set isdefault=-1

  2、修改重写的网址。

  如果用默认的设置, 访问的网址是:

  

  这样的形式, 我们是可以更改这种样式的.

  找到文件/include/helpers/channelunit.helper.php打开.

  可以看到有这样的语句

代码如下

复制代码

retu $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html'; 这就是新闻的url格式.  修改为

retu "/view-".$aid.'-1.html'; 找到这是列表的重写url. 

$reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid; 这是列表的重写url. 修改为:

$reurl = "/list-".$typeid.".html";

  3、需要设置重写规则。

  在系统目录下加一个 .htaccess文件,在里面加上下面的:

代码如下

复制代码

RewriteEngine On    RewriteRule ^list-([0-9]+)\.html$ /plus/list.php?tid=$1  RewriteRule ^list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3  RewriteRule ^view-([0-9]+)-1\.html$ /plus/view.php?arcID=$1  RewriteRule ^view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2 

  如果你的系统支持url重写,到这里就可以用伪静态访问了.这样就完成了设置。

  更进一步,还可以把view换成自己的任何词语,这也要把include/arc.archives.class.php文件中的view也一样替换。

  发布选项: 生成HTML 仅动态浏览 发新闻的时候选一下就可以了。为了以后升级,尽量减少修改文件。

  更多伪静态设置办法:

  频道|栏目页|新闻页伪静态

  主要通过修改GetFileName()、GetTypeUrl()这两个函数实现。DedeCms V5.3、DedeCms V5.5和DedeCms V5.6版本,打开/include/channelunit.func.php进行修改。注意:DedeCms V5.7,此文件路径更改了,你打开/include/helpers/channelunit.helper.php即可。

  a.将GetFileName()中的如下代码:

代码如下

复制代码

//动态新闻  if($cfg_rewrite == 'Y')  {  retu $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';  } 替换为

//动态新闻  if($cfg_rewrite == 'Y')  {  retu "/archives/view-".$aid.'-1.html';  }

  将新闻页默认的/plus/view-1-1.html链接格式改为/archives/view-1-1.html,这个随个人喜欢,不作更改也行。

  b.将GetTypeUrl()中的如下代码:

代码如下

复制代码

//动态 $reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid; 替换为

//动态 $reurl = "/category/list-".$typeid.".html";

  这步必须修改,即让你的频道或是栏目页网址变更为/category/list-1.html形式。

  列表分页伪静态

  打开/include/arc.listview.class.php,找到获取动态的分页列表GetPageListDM()函数末尾处:

代码如下

复制代码

$plist = str_replace('.php?tid=', '-', $plist); 替换为

$plist = str_replace('plus', 'category', $plist);//将默认的plus替换成category $plist = str_replace('.php?tid=', '-', $plist);

  将列表分页默认链接格式/plus/list-1-2-1.html修改为/category/list-1-2-1.html,这步也可以不作更改。

  新闻分页伪静态

  打开/include/arc.archives.class.php,找到获取动态的分页列表GetPagebreakDM()函数末尾处:

代码如下

复制代码

$PageList = str_replace(".php?aid=","-",$PageList); 替换为

$plist = str_replace('plus', 'archives', $plist);//将默认的plus替换成archives $PageList = str_replace(".php?aid=","-",$PageList);

  这步不作修改也可以,只是个人喜好问题。

  TAG标签伪静态

  DedeCms默认的TAG标签网址,形如/tags.php?/dedecms5.7/,特别之难看。打开/include/taglib/tag.lib.php,找到lib_tag()函数下的:

代码如下

复制代码

$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/"; 替换为

$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword'])."/";

  到这里,TAG标签网址中的“.php?”号就去掉了。

  搜索伪静态

#p#分页标题#e#

  DedeCms搜索网址静态化比较麻烦,附带参数多不说,参数也可能变化,像搜索结果分页的网址就特麻烦,伪静态规则匹配复杂。小拼就偷下懒,将搜索网址中“search.php?…”直接替换为“search.html?…”,至于“?”号之后的参数以任意字符进行匹配。

  依次打开include文件夹下的channelunit.func.php、arc.searchview.class.php、arc.taglist.class.php以及/include/taglib/hotwords.lib.php,查找“search.php?”替换为“search.html?”即可。

  问答伪静态

  问答模块的伪静态实现比较简单,只要后台开启伪静态支持即可,至于个别页面,如ask目录下的browser.php、question.php以及include目录下的common.inc.php、functi*****.inc.php都需要简单修改才可以匹配伪静态规则。注意一点,DedeCms V5.7问答模块整体升级了,之前的规则已经不适用了,小拼以后会专门写个教程供大家参考的。

  DedeCms伪静态注意事项

  1)以上提供的DedeCms伪静态修改以及规则都是按照个人的修改步骤来的,仅供参考,你可以根据站点的实际情况作相应调整;

  2)伪静态实现思路,即根据理想的网址结构写好伪静态规则,然后对程序进行相应修改,并没有你想象中的那么复杂;

  3)不会程序、不会正则都没有关系,但是思路一定要清楚,还有就是禁得住“折腾”,多研究,搞透了,对提升自己也有极大好处。

本文章网址:http://www.ppssdd.com/code/21233.html。转载请保留出处,谢谢合作!

DEDECMS 5.7伪静态怎么设置

DEDECMS 5.7伪静态怎么设置

DEDECMS 5.7伪静态怎么设置

dedecms 5.7伪静态怎么设置

织梦内容管理系统(DedeCms) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,dedecms5.7功能更强大和实用,但是一些朋友对dede5.7的伪静态设置不是很熟悉,下面,就为大家分享一下dede5.7伪静态的设置方法。(推荐教程:dedecms教程)

第一步、后台-系统参数-核心设置-是否使用伪静态:选择“是”;

注:你的网站空间是否支持伪静态,你可以与空间的IDC商联系一下,如果是自己的服务器,那就更好办了,自己动手,丰衣足食。一般来说,空间都是支持伪静态的。Apache服务器伪静态相对简单,直接在.htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载Rewrite组件,然后配置httpd.ini文件。 

第二步、如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:

将所有文档设置为“仅动态浏览”:

update dede_archives set ismake=-1
登录后复制

将所有栏目设置为“使用动态页”:

update dede_arctype set isdefault=-1
登录后复制

第三步、列表页、文章页伪静态修改

打开/include/helpers/channelunit.helper.php。

(1)查找:

//动态文章
if($cfg_rewrite == 'Y')
{
    return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';
}
登录后复制

替换为

//动态文章
if($cfg_rewrite == 'Y')
{
    return "/DedeCMS/DedeCMS5.7-".$aid.'-1.html';
}
登录后复制

意思是:将默认的/plus/view-1-1.html文章链接格式改为/DedeCMS/DedeCMS5.7-1-1.html。

(2) 查找:

//动态
$reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;
登录后复制

替换为

//动态
$reurl = "/category/list-".$typeid.".html";
登录后复制

意思是:将默认的频道或是列表页URL/plus//list.php?tid=1变更为/dedecms/list-1.html形式。

第四步、列表分页伪静态修改

打开/include/arc.listview.class.php

查找:

$plist = str_replace('.php?tid=', '-', $plist);
登录后复制

替换为

$plist = str_replace('plus/list.php?tid=', ‘DedeCMS/DedeCMS5.7-', $plist);
登录后复制

将默认的plus/list.php?tid=替换成RMB/list-;

意思是:将默认的列表分页链接格式plus/list.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.html。

第五步、文章分页伪静态

打开/include/arc.archives.class.php,找到获取动态的分页列表GetPagebreakDM()函数末尾处:

查找:

$PageList = str_replace("plus/view.php?tid=","DedeCMS/DedeCMS5.7-",$PageList);
登录后复制

替换为

$plist = str_replace('plus/view.php?tid=', ’DedeCMS/DedeCMS5.7-', $plist);
登录后复制

将默认的plus/view.php?tid=替换成RMB/huilv-;

意思是:将默认的文章分页链接格式plus/view.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7-x-x-x.html

第六步、TAG标签伪静态

DedeCms默认的TAG标签URL,形如/tags.php?/dedecms模板 /,是不是觉得有个问号不怎么爽,我们改成/tags/dedecms模板 /,是不是好看多了。

下面我们来改一下,打开/include/taglib/tag.lib.php:

查找:

$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";
登录后复制

替换为

$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword'])."/";
登录后复制

这样就修改好了,上传你到你的网站,切记:要记得将原网站备份哦!!

第七步、httpd.ini伪静态规则:

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule ^(.*)/RMB/list-([0-9]+)\.html $1/plus/list\.php\?tid=$2 [I]
RewriteRule ^(.*)/RMB/list-([0-9]+)-([0-9]+)-([0-9]+)\.html $1/plus/list\.php\?tid=$2&TotalResult=$3&PageNo=$4 [I]
RewriteRule ^(.*)/RMB/huilv-([0-9]+)-([0-9]+)\.html $1/plus/view\.php\?arcID=$2&pageno=$3 [I]
RewriteRule ^(.*)/(.*)_(.*)_([0-9]+)\.html $1/huilv/?from=$2&to=$3&num=$4 [I]
RewriteRule ^(.*)/tags\.html $1/tags\.php [I]
RewriteRule ^(.*)/tags/(.*)(?:(\?.*))* $1/tags\.php\?\/$2 [I]
RewriteRule ^(.*)/tags/(.*)\/(?:(\?.*))* $1/tags\.php\?\/$2\/ [I]
RewriteRule ^(.*)/tags/(.*)\/([0-9])(?:(\?.*))* $1/tags\.php\?\/$2\/$3 [I]
RewriteRule ^(.*)/tags/(.*)\/([0-9])\/(?:(\?.*))* $1/tags\.php\?\/$2\/$3\/ [I]
登录后复制

将上面代码保存为:httpd.ini 上传到网站的根目录。

如无特特殊需求建议采用官方默认的生成静态的页面方式浏览。

以上就是DEDECMS 5.7伪静态怎么设置的详细内容,更多请关注php中文网其它相关文章!

DedeCMS 5.7系统TAG标签伪静态怎么设置

DedeCMS 5.7系统TAG标签伪静态怎么设置

DedeCMS 5.7系统TAG标签伪静态怎么设置

Dedecms 5.7系统TAG标签伪静态怎么设置?

1.修改前台显示链接

推荐学习:织梦cms

我们这里达到的效果就是使原来/tags.PHP?keywors更改为/tags/keywords.html。

这里主要修改下调用的标签,在include/tag/libtag.lib.PHP中,在87行找到

代码如下:

$row['link'] = $cfg_cmsurl."/tags?".urlencode($row['keyword']);

将其改为:

代码如下:

$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword']).".html";

2.修改分页代码

我们需要修改include/arc.taglist.class.PHP,将分页函数替换为:

代码如下:

/** * 获取动态的分页列表
*
* @access public
* @param int $list_len 列表宽度
* @param string $listitem 列表样式
* @return string
*/
function GetPagelistDM($list_len,$listitem="info,index,end,pre,next,pageno")
{
$prepage="";
$nextpage="";
$prepagenum = $this->PageNo - 1;
$nextpagenum = $this->PageNo + 1;
if($list_len == "" || preg_match("/[^0-9]/",$list_len))
{
$list_len = 3;
}
$totalpage = $this->TotalPage;
if($totalpage <= 1 && $this->TotalResult > 0)
{
return "<span>共1页/".$this->TotalResult."条</span>";
}
if($this->TotalResult == 0)
{
return "<span>共0页/".$this->TotalResult."条</span>";
}
$maininfo = "<span>共{$totalpage}页/".$this->TotalResult."条</span>rn";
$purl = $this->GetCurUrl();
$basename = basename($purl);
$tmpname = explode('.',$basename);
$purl = str_replace($basename,'',$purl).urlencode($this->Tag);
//var_dump($purl);exit;
//$purl .= "?/".urlencode($this->Tag);
//获得上一页和下一页的链接
if($this->PageNo != 1)
{
$prepage.="<li><a href='".$purl."-$prepagenum'.html>上一页</a></li>rn";
$indexpage="<li><a href='".$purl."-1.html'>首页</a></li>rn";
}
else
{
$indexpage="<li><a>首页</a></li>rn";
}
if($this->PageNo!=$totalpage && $totalpage>1)
{
$nextpage.="<li><a href='".$purl."-$nextpagenum.html'>下一页</a></li>rn";
$endpage="<li><a href='".$purl."-$totalpage.html'>末页</a></li>rn";
}
else
{
$endpage="<li><a>末页</a></li>rn";
}
//获得数字链接
$listdd="";
$total_list = $list_len * 2 + 1;
if($this->PageNo >= $total_list)
{
$j = $this->PageNo - $list_len;
$total_list = $this->PageNo + $list_len;
if($total_list > $totalpage)
{
$total_list = $totalpage;
}
}
else
{
$j=1;
if($total_list > $totalpage)
{
$total_list = $totalpage;
}
}
for($j; $j<=$total_list; $j++)
{
if($j == $this->PageNo)
{
$listdd.= "<li><a>$j</a></li>rn";
}
else
{
$listdd.="<li><a href='".$purl."-$j.html'>".$j."</a></li>rn";
}
}
$plist = '';
if(preg_match('/info/i',$listitem))
{
$plist .= $maininfo.' ';
}
if(preg_match('/index/i',$listitem))
{
$plist .= $indexpage.' ';
}
if(preg_match('/pre/i',$listitem))
{
$plist .= $prepage.' ';
}
if(preg_match('/pageno/i',$listitem))
{
$plist .= $listdd.' ';
}
if(preg_match('/next/i',$listitem))
{
$plist .= $nextpage.' ';
}
if(preg_match('/end/i',$listitem))
{
$plist .= $endpage.' ';
}
return $plist;
}

3.设置伪静态规则

我们这里以iis7为例子,设置以下规则:

代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="weather1" stopProcessing="true">
<match url="tags/([^-]+).html$" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/tags.PHP?/{R:1}" appendQueryString="false" />
</rule>
<rule name="weather2" stopProcessing="true">
<match url="tags/([^-]+)-([0-9]+).html$" ignoreCase="true" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/tags.PHP?/{R:1}/{R:2}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

可以直接保存为web.config放在站点根目录。

4.重新生成html页面

这个操作就不用说了,全部重新生成下,至此全部修改完毕。

以上就是Dedecms 5.7系统TAG标签伪静态怎么设置的详细内容,更多请关注小编其它相关文章!

DedeCMS 5.7系统TAG标签伪静态设置

DedeCMS 5.7系统TAG标签伪静态设置

 
1.修改前台显示链接
 
我们这里达到的效果就是使原来/tags.PHP?keywors更改为/tags/keywords.html。
 
这里主要修改下调用的标签,在includetaglibtag.lib.PHP中,在87行找到
 
 
 
 
复制代码代码如下:$row['link'] = $cfg_cmsurl."/tags?".urlencode($row['keyword']); 
将其改为:
 
 
 
 
复制代码代码如下:$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword']).".html"; 
 
2.修改分页代码
 
我们需要修改include/arc.taglist.class.PHP,将分页函数替换为:
 
 
 
 
复制代码代码如下:
/** * 获取动态的分页列表
*
* @access public
* @param int $list_len 列表宽度
* @param string $listitem 列表样式
* @return string
*/
function GetPagelistDM($list_len,$listitem="info,index,end,pre,next,pageno")
{
$prepage="";
$nextpage="";
$prepagenum = $this->PageNo - 1;
$nextpagenum = $this->PageNo + 1;
if($list_len == "" || preg_match("/[^0-9]/",$list_len))
{
$list_len = 3;
}
$totalpage = $this->TotalPage;
if($totalpage <= 1 && $this->TotalResult > 0)
{
return "
}
if($this->TotalResult == 0)
{
return "
}
$maininfo = "
$purl = $this->GetCurUrl();
$basename = basename($purl);
$tmpname = explode('.',$basename);
 
$purl = str_replace($basename,'',$purl).urlencode($this->Tag);
//var_dump($purl);exit;
//$purl .= "?/".urlencode($this->Tag);
 
//获得上一页和下一页的链接
if($this->PageNo != 1)
{
$prepage.="上一页
$indexpage="首页
}
else
{
$indexpage="首页
}
if($this->PageNo!=$totalpage && $totalpage>1)
{
$nextpage.="下一页
$endpage="
}
else
{
$endpage="
}
 
//获得数字链接
$listdd="";
$total_list = $list_len * 2 + 1;
if($this->PageNo >= $total_list)
{
$j = $this->PageNo - $list_len;
$total_list = $this->PageNo + $list_len;
if($total_list > $totalpage)
{
$total_list = $totalpage;
}
}
else
{
$j=1;
if($total_list > $totalpage)
{
$total_list = $totalpage;
}
}
for($j; $j<=$total_list; $j++)
{
if($j == $this->PageNo)
{
$listdd.= "
}
else
{
$listdd.="
}
}
$plist = '';
if(preg_match('/info/i',$listitem))
{
$plist .= $maininfo.' ';
}
if(preg_match('/index/i',$listitem))
{
$plist .= $indexpage.' ';
}
if(preg_match('/pre/i',$listitem))
{
$plist .= $prepage.' ';
}
if(preg_match('/pageno/i',$listitem))
{
$plist .= $listdd.' ';
}
if(preg_match('/next/i',$listitem))
{
$plist .= $nextpage.' ';
}
if(preg_match('/end/i',$listitem))
{
$plist .= $endpage.' ';
}
return $plist;
}
 
 
3.设置伪静态规则
 
我们这里以iis7为例子,设置以下规则:
 
 
 
 
复制代码代码如下:
figuration>
stem.webServer>
noreCase="true" />
PHP?/{R:1}" appendQueryString="false" />
noreCase="true" />
PHP?/{R:1}/{R:2}" appendQueryString="false" />
stem.webServer>
figuration>
 
 
可以直接保存为web.config放在站点根目录。
 
4.重新生成html页面
 
这个操作就不用说了,全部重新生成下,至此全部修改完毕。
 
5.预览查看显示结果
 
至此,我们已经完成了所有的设置,可以查看:http://www.**.net/tags/PHP.html语言效果。
 
 

总结

以上是小编为你收集整理的DedeCMS 5.7系统TAG标签伪静态设置全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Dedecms相关文章

织梦系统 dedecms pagelist标签使用修改方法介绍
在Dedecms织梦列表页中是肯定要使用pagelist标签的,但是有的时候也会因为一些css格式的问题会出现排列顺序的问题,所以也要知道怎么样修改pagelist标签?
织梦网站怎么搬家?dede系统网站迁移数据到另外个服务器
今天分享织梦网站怎么搬家,个人感觉织梦的搬家比其他的程序的都简单。1、网站备份登录织梦后台,【系统】-【数据库备份/还原】-【提交】,织梦程序开始自动备份数据库,等待即可。
织梦网站安全设置方法 dede系统网站如何配置才安全?
织梦(dede)程序不安全是公认的,同样是建站,使用织梦程序被黑的风险更大,所以,一些安全设置是非常有必要的。织梦网站安全设置的4个主要操作
织梦自动生成网站地图sitemap代码 dede生成sitemap站点地图的代码实例
使用xemu、爱站工具包、尖叫青蛙等制作网站地图,每次生成sitemap还需要再上传到服务器,还是比较麻烦的,不过有些网站程序可以通过插件完成网站地图的自动更新,比如wordpress。但是织梦一直都不行,今天就用插件+代
dede织梦纯代码制作网站地图 dede网站地图生成代码
分享织梦自动生成网站sitemap,但是需要安装插件,今天分享,织梦如何不使用插件,制作网站xml地图。
织梦dede自定义表单添加全选功能 dede自定义表单实操代码
织梦自定义表单没有全选/取消全选功能,有时候想要全选全,需要一个一个选择比较麻烦,如果网站有大量的恶意留言,想要删除更麻烦。虽然可以使用sql命令删除恶意留言,但不是很灵活,今天就给织梦自定义表单添加全选
dede cms如何定时主动推送文章 dede实现定时推送文章给百度的方法
前几天百度公开课说了,api推送的优先级比较高,所以在没有快速收录的情况下,api提交必须要有,那么织梦要如何实现api主动推送呢?
织梦dede发布文章实时api主动推送
dede定时主动推送,虽然也很方便,但只能固定时间推送,实时性不高,今天小编分享如何发布文章后实时api推送至百度?
  • • 织梦系统 dedecms pagelist标签使用修改
  • • 织梦网站怎么搬家?dede系统网站迁移数
  • • 织梦网站安全设置方法 dede系统网站如何
  • • 织梦自动生成网站地图sitemap代码 dede
  • • dede织梦纯代码制作网站地图 dede网站地
  • • 织梦dede自定义表单添加全选功能 dede自
  • • dede cms如何定时主动推送文章 dede实现
  • • 织梦dede发布文章实时api主动推送
  • • 织梦dedecms当前位置标签代码的5种写法
  • • 织梦DEDECMS文章、栏目页获取当前页面顶
JavaScriptPHPsqlMysqLwindows使用wordpressAJAXList方法系统文件安装Nginx教程数据库设置Woocommerc服务器pdf错误获取创建显示函数用户更新添加IIS删除自定义代码进行.htaccess调用软件选择功能属性下载
  • 友情链接:
  • 菜鸟教程
  • 前端之家
  • 编程小课
  • 小编
  • -
  • 我要投稿
  • -
  • 广告合作
  • -
  • 联系我们
  • -
  • 免责声明
  • -
  • 网站地图
版权所有 © 2018 小编 闽ICP备13020303号-8
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜"程序精选"关注
微信扫一扫可直接关注哦!

dedecms tags伪静态完美解决办法

dedecms tags伪静态完美解决办法

 用Dedecms 系统做网站的朋友特别多,Dedecms功能强大,除了安全是一个问题外,tags标签静态化问题困扰很多朋友,湖哥为了解决一个网站的tags标签静态化问题找了很多文章,也试了很多次,终于在今天解决了这个问题:

 

  1.Dedecms版本  5.7 sp1 GBK

  2.服务器:windows 2008 iis7

  话不多说,开始!

  目标:我们要使原来tags.PHP?/3qshop/  变动为/tags/3qshop.html 并且为伪静态,为什么要为伪静态?因为我们的关键词(tags)太多,比真正静态节省空间。

  那么我们要做如下工作,记得一步一步来哦!

  第1步:

  首先找到/include/taglib/tag.lib.PHP中,在87行找到

$row['link'] = $cfg_cmsurl."/tags?".urlencode('keyword']);

  将其修改为:

"/tags/".urlencode('keyword']).".html";

  第2步:

  修改分页代码部分

  修改include/arc.taglist.class.PHP,找到分页函数,将其更换为:

  注意:从429行  ---->541行  用以下内容替换!

  (提示:网上有文章中讲的以下代码中的"pageinfo"是错误的,应该为\"pageinfo\",不然会有错误提示哦!已经代码测试OK!)

/** * 获取动态的分页列表 * * @access public @param int $list_len 列表宽度 string $listitem 列表样式 @return string */ function GetPagelistDM($list_len,$listitem="info,index,end,pre,next,pageno") { $prepage=""; $nextpage=$prepagenum = $this->PageNo - 1; $nextpagenum = $this->PageNo + 1; if($list_len == "" || preg_match("/[^0-9]/", $list_len)) { $list_len = 3; } $totalpage = $this->TotalPage; $totalpage <= 1 && $this->TotalResult > 0) { return ".$this->TotalResult."条; } $this->TotalResult == "."条; } $maininfo = "."条; $purl = $this->GetCurUrl(); $basename = basename($purl); $tmpname = explode('.',45);">$basename); $purl = str_replace($basename, '',45);">$purl).urlencode($this->Tag); //var_dump($purl);exit; //$purl .= "?/".urlencode($this->Tag); //获得上一页和下一页的链接 $this->PageNo != 1) { $prepage.="上一页; $indexpage="-1.html'>首页; } else { "首页; } $this->PageNo!=$totalpage && $totalpage>$nextpage.="-$nextpagenum.html'>下一页; $endpage="-$totalpage.html'>末页; } "; } //获得数字链接 $listdd=$total_list = $list_len * 2 + $this->PageNo >= $total_list) { $j = $this->PageNo - $list_len; $this->PageNo + $list_len; $total_list > $totalpage) { $totalpage; } } $j=for($j; $j<=$total_list; $j++) { $j == $this->PageNo) { $listdd.= "
  • ; } $listdd.="-$j.html'>".$j."; } } $plist = ''; if(preg_match('/info/i',45);">$listitem)) { $plist .= $maininfo.' '; } '/index/i',45);">$indexpage.'/pre/i',45);">$prepage.'/pageno/i',45);">$listdd.'/next/i',45);">$nextpage.'/end/i',45);">$endpage.return $plist; } 第3步:
  •  

      设置伪静态规则:

    xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="weather1" stopProcessing="true"> <match url="tags/([^-]+).html$" ignoreCase="true" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="IsDirectory" negate="true" /> conditions> <action type="Rewrite" url="/tags.PHP?/{R:1}" appendQueryString="false" /> rule> <rule name="weather2" stopProcessing="tags/([^-]+)-([0-9]+).html$" ignoreCase="/tags.PHP?/{R:1}/{R:2}" appendQueryString="false" /> rule> rules> rewrite> system.webServer> configuration>

      把以上内容保存为:web.config  放到网站根目录!

      第4步:

      生成文章,浏览!大功告成?错,有可能你会出现以下错误!

      系统无此标签,可能已经移除!

      你还可以尝试通过搜索程序去搜索这个关键字:前往搜索>> 
      如果你的浏览器没反应,请点击这里...

      解决办法如下:

      在网站根目录下找到tags.PHP 此文件,将以下代码替换掉:

    $tag = trim($_SERVER['QUERY_STRING']);

      换成

    $tag = strtolower(trim('QUERY_STRING']));

      出现这个问题的原因是IIS伪静态中文转码为UTF8,解决方法就是在tags.PHP中加入判断UTF8编码的语句,如果是则转换为GBK,这样就可以解决了
      方法:

      1.把以下代码加入到根目录下tags.PHP中的18行下面,也就是if(isset($tags[2])) $PageNo = intval($tags[2]);下面哦:

    function is_utf8($tag) { if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128).191)."]{1}){1}/",45);">$tag) == true || preg_match("/([".chr("]{1}){1}$/",255);">"]{1}){2,}/",45);">$tag) == true) { return true; } else { return false; } }

      2.在第25行上面加入以下语句,也就是在$tag = FilterSearch(urldecode($tag));上面加入,记得这里是上面哦!

    if(is_utf8($tag)==1) { $tag = iconv("utf-8","gbk",45);">$tag); }

      这个作用就是调用上面的函数判断编码 如果是 utf8则转为gbk;

      到此,tags伪静态问题全面完美解决!

    关于DEDECMS全站伪静态如何设置 DEDECMS伪静态设置办法dedecms手机伪静态的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于DEDECMS 5.7伪静态怎么设置、DedeCMS 5.7系统TAG标签伪静态怎么设置、DedeCMS 5.7系统TAG标签伪静态设置、dedecms tags伪静态完美解决办法的相关知识,请在本站寻找。

    本文标签: