給閣下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號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!