给阁下windows IIS 7-IIS10织梦(DEDECMS)管理系统的 列表页、内容页、文章分页、标签页设置伪静态的方式方法
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
今天哥们说他的dedecms伪静态挂了,之前服务器用的2003,2003的系统伪静态的文件为httpd.ini但是2008-2019的伪静态为web.config,但是导入以前的规则还是不能使用,
很是蛋疼,百度了一圈,多数都是CTRL+C然后CTRL+V,基本也是5.6以下的伪静态,哥们的DEDECMS为5.7,摸索了好久终于搞定,亲测有效哦;
此教程设置列表页,内容页,TAGS页的伪静态,网站运行环境 IIS7(10)+PHP+MYSQL,织梦版本:dedecms v5.7。
1.运行环境必须支持伪静态,IIS URL重写模块, 点我百度网盘下载IIS伪静态 提取码:yail 下载后安装。
2.修改后台设置
a.后台-系统参数-核心设置-是否使用伪静态:选择“是”;
b.后台-系统-SQL命令行工具中执行如下语句:
update dede_arctype set isdefault=-1;
update dede_archives set ismake=-1;
c.修改后台模板文件:\dede\templets\article_add.htm,有两个地方要修改。把默认的“生成生成HTML”选择状态去掉,选中“仅动态浏览”。修改方法:搜索“发布选项”,在下面
第一段代码:<input name="ishtml" type="radio" class="np" value="1" checked="1" />把黄色的删除,修改后为
<input name="ishtml" type="radio" class="np" value="1" />
第二段代码<input name="ishtml" type="radio" class="np" value="0"/>在后面添加:checked="checked",添加后如下: <input name="ishtml" type="radio" class="np" value="0" checked="checked"/>
d.把站点根目录下index.html删除,以后不更新主页HTML即可,当然你也可以选择不使用动态首页;
3修改程序文件:
a.打开:/include/helpers/channelunit.helper.php
搜索:
return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html';
替换为:
return "/archives/view-".$aid.'-1.html';
这个是将文章页默认的/plus/view-1-1.html链接格式改为/archives/view-1-1.html ,你也可以把archives改成其他名字。这里我用的是archives,这里如果修改了,下面的规则里面也要修改成你自己的名字
搜索:
$reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;
替换为:
$reurl = "/category/list-".$typeid.".html";
这是里让你的频道或是列表页URL变更为/category/list-1.html形式。category你也可修改成其他名字。
b.修改列表页分页,打开/include/arc.listview.class.php
搜索
$plist = str_replace('.php?tid=', '-', $plist);
替换成:
$plist = str_replace('plus', 'category', $plist);//将默认的plus替换成category
$plist = str_replace('.php?tid=', '-', $plist);
这里是修改列表页分页的
c.修改文章分页
打开/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);
d.打开/include/taglib/tag.lib.php
查找:
$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";
替换为:
$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword']).".html";
这里是修改TGA标签伪静态的.
打开\templets\default\taglist.htm,把里面的TAG标签链接地址/tgas.php修改为/tags.html
4.伪静态规则:把下面代码另存为web.config,放到网站根目录下即可。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="首页">
<match url="^index.html$" ignoreCase="false" />
<action type="Rewrite" url="index.php" appendQueryString="false" />
</rule>
<rule name="列表页">
<match url="category/list-([0-9]+).html" ignoreCase="false" />
<action type="Rewrite" url="/plus/list.php?tid={R:1}" appendQueryString="false" />
</rule>
<rule name="列表分页">
<match url="^category/list-([0-9]+)-([0-9]+)-([0-9]+).html$" ignoreCase="false" />
<action type="Rewrite" url="/plus/list.php?tid={R:1}&totalresult={R:2}&PageNo={R:3}" appendQueryString="false" />
</rule>
<rule name="内容页">
<match url="^archives/view-([0-9]+)-1.html$" ignoreCase="false" />
<action type="Rewrite" url="/plus/view.php?arcID={R:1}" appendQueryString="false" />
</rule>
<rule name="文章分页">
<match url="^view-([0-9]+)-([0-9]+).html$" ignoreCase="false" />
<action type="Rewrite" url="/plus/view.php?aid={R:1}&pageno={R:2}" appendQueryString="false" />
</rule>
<rule name="TAGS">
<match url="tags.html" />
<conditions>
</conditions>
<action type="Rewrite" url="tags.php" appendQueryString="false" />
</rule>
<rule name="TAG列表">
<match url="^tags/(.*).html$" />
<action type="Rewrite" url="/tags.php?/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
演示地址:www.hndxc.net/
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!