织梦DedeCMS全站目录化伪静态教程(PC+移动网址一致)

织梦DedeCMS全站目录化伪静态教程(PC+移动网址一致)

静态页面对于网站的收录来说更加友好,并且伪静态后织梦网站不用每次生成,减少操作步骤。所以织梦DEDECMS在进行网站建设的时候,可以根据自己的需求对网站进行伪静态处理。淘站网以www.zhaozongjie.com站点详细操作步骤为例,进行伪静态的详细介绍。

首先看看效果

PC端的地址:

栏目页:http://www.zhaozongjie.com/theme/

内容页:http://www.zhaozongjie.com/theme/12676.html

移动端的地址:

栏目页:http://m.zhaozongjie.com/theme/

内容页:http://m.zhaozongjie.com/theme/12676.html

下面开始操作(先备份网站,以防操作失误)。

先把下面的文件按照你的网站编码,下载覆盖到网站空间根目录


GBK UTF-8


后台-系统参数-核心设置-开启伪静态

1-1.jpg

核心设置里面,启用绝对网址关闭

2-1.jpg

安装全站动静态插件,下载的压缩包里有。设置全站为动态。

3-1024x415.jpg

后台添加两个新变量

变量名称:cfg_mobile

变量类型:文本

参数说明:手机版网址

变量值:http://m.zhaozongjie.com

所属组:站点设置

变量名称:cfg_rewritem

变量类型:布尔(Y/N)

参数说明:手机版伪静态

变量值:Y

所属组:站点设置

变量设置成功后

模板里把搜索框代码改成静态的js提交搜索,参考下面代码,注意下面的域名改成自己的

PS:www.zhaozongjie.com使用了百度站内搜索,所以直接跳过了第四步

PC端

<script type="text/javascript">
function search()
{
    var q = document.getElementById("q").value;
    window.location.href = "http://www.zhaozongjie.com/search/"+q+".html";
}
function enterIn(obj,evt)
{
    var evt = evt ? evt : (window.event ? window.event : null);
    if (evt.keyCode == 13)
    {
        var q = obj.value;
        window.location.href = "http://www.zhaozongjie.com/search/"+q+".html";
    }
}
</script>
<form action="" method="post" onsubmit="return false">
    <div class="form">
        <h4>搜索</h4>
        <input name="q" id="q" onkeydown="enterIn(this,event);" type="text" />
        <button type="submit" class="search-submit" onclick="search()">搜索</button>
    </div>
</form>

手机端

<script type="text/javascript">
function search()
{
    var q = document.getElementById("q").value;
    window.location.href = "http://m.zhaozongjie.com/search/"+q+".html";
}
function enterIn(obj,evt)
{
    var evt = evt ? evt : (window.event ? window.event : null);
    if (evt.keyCode == 13)
    {
        var q = obj.value;
        window.location.href = "http://m.zhaozongjie.com/search/"+q+".html";
    }
}
</script>
<form action="" method="post" onsubmit="return false">
    <div class="form">
        <h4>搜索</h4>
        <input name="q" id="q" onkeydown="enterIn(this,event);" type="text" />
        <button type="submit" class="search-submit" onclick="search()">搜索</button>
    </div>
</form>

分别把电脑版及手机版的伪静态规则设置好,根据你的运行环境选择相应的规则。


电脑端模板添加跳转代码

主页

<meta http-equiv="mobile-agent" content="format=xhtml;url={dede:global.cfg_wap/}">
<script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="{dede:global.cfg_wap/}";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script>

列表页

<meta http-equiv="mobile-agent" content="format=xhtml;url={dede:global.cfg_wap/}{dede:type}[field:typeurl/]{/dede:type}">
<script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="{dede:global.cfg_wap/}{dede:type}[field:typeurl/]{/dede:type}";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script>

内容页

<meta http-equiv="mobile-agent" content="format=xhtml;url={dede:global.cfg_mobile/}{dede:field.id runphp=yes}$result=GetOneArchive(@me);@me=$result['arcurl'];{/dede:field.id}">
<script type="text/javascript">if(window.location.toString().indexOf('pref=padindex') != -1){}else{if(/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))){if(window.location.href.indexOf("?mobile")<0){try{if(/Android|Windows Phone|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)){window.location.href="{dede:global.cfg_mobile/}{dede:field.id runphp=yes}$result=GetOneArchive(@me);@me=$result['arcurl'];{/dede:field.id}";}else if(/iPad/i.test(navigator.userAgent)){}else{}}catch(e){}}}}</script>

标签修改

如果网站出现样式问题或者是数据调用不出来。你可以按照下面的方法修改你的网站模板

css、js、images 改成绝对路径,例如 assets/css/ 改成 /assets/css/
index.php 改成 {dede:global.cfg_mobile/}
list.php?tid=[field:id/] 改成 [field:typelink/]
list.php?tid=~id~ 改成 ~typelink~
list.php?tid={dede:field name='id'/} 改成 {dede:field.typeurl/}
view.php?aid=[field:id/] 改成 [field:arcurl/]
[field:litpic/] 改成 [field:global.cfg_basehost/][field:litpic/]
[field:image/] 改成 <img src="[field:global.cfg_basehost/][field:litpic/]">
上一页标签 {dede:prenext get='pre'/}
改成
{dede:prenext get=pre runphp=yes}
$preurl = @me;
preg_match('/aid=(\d*)/',$preurl,$match);
$result = GetOneArchive($match[1]);
@me = !empty($result) ? "上一篇:<a href=\"{$result['arcurl']}\">{$result['title']}</a>" : "上一篇:没有了";
{/dede:prenext}
下一页标签 {dede:prenext get=’next’/}
改成
{dede:prenext get=next runphp=yes}
$preurl = @me;
preg_match('/aid=(\d*)/',$preurl,$match);
$result = GetOneArchive($match[1]);
@me = !empty($result) ? "下一篇:<a href=\"{$result['arcurl']}\">{$result['title']}</a>" : "下一篇:没有了";
{/dede:prenext}
文章内容 {dede:field.body/}
改成
{dede:field.body runphp=yes}
global $cfg_basehost;
$str = @me;
$search = '/(<img.*?)width=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is';
$search1 = '/(<img.*?)height=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is';
$search2 = '#(<img.*?style=".*?)width:\d+px;([^"]*?.*?>)#i';
$search3 = '#(<img.*?style=".*?)height:\d+px;([^"]*?.*?>)#i';
$content = preg_replace($search,'$1$3',$str);
$content = preg_replace($search1,'$1$3',$content);
$content = preg_replace($search2,'$1$2',$content);
$content = preg_replace($search3,'$1$2',$content);
@me = $content;
@me = str_replace('/uploads/allimg/', $cfg_basehost.'/uploads/allimg/', $content);
{/dede:field.body}
栏目内容 {dede:field.content/}
改成
{dede:field.content runphp=yes}
global $cfg_basehost;
$str = @me;
$search = '/(<img.*?)width=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is';
$search1 = '/(<img.*?)height=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is';
$search2 = '#(<img.*?style=".*?)width:\d+px;([^"]*?.*?>)#i';
$search3 = '#(<img.*?style=".*?)height:\d+px;([^"]*?.*?>)#i';
$content = preg_replace($search,'$1$3',$str);
$content = preg_replace($search1,'$1$3',$content);
$content = preg_replace($search2,'$1$2',$content);
$content = preg_replace($search3,'$1$2',$content);
@me = $content;
@me = str_replace('/uploads/allimg/', $cfg_basehost.'/uploads/allimg/', $content);
{/dede:field.content}

还有一个要注意,伪静态后,访问后台管理地址后面要加上index.php

如有疑问请联系qq:979779692,有偿解决伪静态问题。

补充

上面的伪静态是在IIS下状态全部是正常的,但在NGINX下tags就显示404错误了。由于对正规则不太了解,网上查了好多教程,终于搞定,列表页,分页后面都带.html,上面教程里面不带.html

地址如下

TAG标签页  http://www.zhaozongjie.com/tags/2012/

TAG标签分页 http://www.zhaozongjie.com/tags/2012/2/

这个在IIS运行环境下是显示正常的。但在NGINX下除TAG首页外,里面的链接都打不开的。

修改后的地址如下

TAG标签页  http://www.zhaozongjie.com/tags/2012.html

TAG标签分页 http://www.zhaozongjie.com/tags/2012/2.html

修改方法:打开 \include\taglib\tag.lib.php ,大约在87行。

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

修改成:

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

打开 \include\arc.taglist.class.php,大约在508行,要在地址后面加上.html

 分页中间数字链接地址:

搜索:

$listdd.="<li><a href='".$purl."/$j/'>".$j."</a></li>\r\n";

替换成:

$listdd.="<li><a href='".$purl."/$j.html'>".$j."</a></li>\r\n";

分页首页链接地址:

搜索:

$indexpage="<li><a href='".$purl."/1/'>首页</a></li>\r\n";

替换成:

$indexpage="<li><a href='".$purl."/1.html'>首页</a></li>\r\n";

分页上一页链接地址:

搜索:

$prepage.="<li><a href='".$purl."/$prepagenum/'>上一页</a></li>\r\n";

替换成:

$prepage.="<li><a href='".$purl."/$prepagenum.html'>上一页</a></li>\r\n";

分页下一页链接地址:

搜索:

$nextpage.="<li><a href='".$purl."/$nextpagenum/'>下一页</a></li>\r\n";

替换成:

$nextpage.="<li><a href='".$purl."/$nextpagenum.html'>下一页</a></li>\r\n";

未页链接地址:

搜索:

$endpage="<li><a href='".$purl."/$totalpage/'>末页</a></li>\r\n";

替换成:

$endpage="<li><a href='".$purl."/$totalpage.html'>末页</a></li>\r\n";

TAG伪静态规则如下

rewrite ^(.*)/tags\.html $1/tags.php;
rewrite ^(.*)/tags/(.*).html $1/tags.php?/$2;
rewrite ^(.*)/tags/(.*)\/([0-9])(?:(\?.*))\.html* $1/tags.php?\/$1\/$2;

收集的TGA伪静态规则

#TAG标签
rewrite ^/tags\.html$ /tags.php;
rewrite ^/tags/(.*)(?:(\?.*))* /tags.php\?\/$1;
rewrite ^/tags/(.*)\/(?:(\?.*))*  /tags.php\?\/$1\/;
rewrite ^/tags/(.*)\/([0-9])(?:(\?.*))* /tags.php\?\/$1\/$2;
rewrite ^/tags/(.*)\/([0-9])\/(?:(\?.*))*  /tags.php\?\/$1\/$2\/;

如有疑问可联系qq:979779692,有偿解决伪静态问题。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!

通讯

嘿,我来帮您!