apache,RewriteRule ^list([09]+).html$ list.php?page=$1 [L],
`,,内容页伪静态规则:,
`apache,RewriteRule ^article([09]+)([09]+).html$ view.php?aid=$1&page=$2 [L],
`,,内容分页伪静态规则:,
`apache,RewriteRule ^article([09]+)([09]+).html$ view.php?aid=$1&page=$2 [L],
“,,这些规则可能需要根据您的具体情况进行调整。在实际应用中,请确保将规则添加到您的Apache配置文件(如httpd.conf)或.htaccess文件中,并重启Apache服务以使更改生效。DedeCMS 5.7 列表、列表分页、内容页、内容分页最新伪静态规则
DedeCMS 5.7版本在实现伪静态方面,需要对多个文件进行修改以支持列表页、内容页及其分页的伪静态,以下是详细的步骤和说明:
准备工作
1、检查服务器是否支持伪静态:确保你的网站空间或服务器支持伪静态,如果是Apache服务器,可以通过.htaccess文件配置伪静态;如果是IIS服务器,则需要加载Rewrite组件并配置httpd.ini文件。
2、启用DedeCMS伪静态功能:
进入DedeCMS后台,系统参数 > 核心设置 > 是否使用伪静态,选择“是”。
如果启用了问答模块,则在后台系统参数模块设置中将是否使用伪静态设置为“是”。
3、更新已有的静态页面为动态浏览:如果网站已经存在生成的静态栏目或文章HTML,需要在后台系统SQL命令行工具中执行以下语句:
update dede_arctype set isdefault=1; update dede_archives set ismake=1;
这里的dede是你安装时的数据表前缀,根据实际情况替换。
修改PHP源码
1、列表页和内容页的伪静态:
打开/include/helpers/channelunit.helper.php文件,找到GetFileName()函数中的如下代码:
// 动态文章 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/view11.html改为/DedeCMS/DedeCMS5.711.html。
同样在该文件中,找到GetTypeUrl()函数中的如下代码:
// 动态 $reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid;
将其替换为:
// 动态 $reurl = "/category/list".$typeid.".html";
这样,频道或列表页URL从默认的/plus/list.php?tid=1变更为/category/list1.html形式。
2、列表分页的伪静态:
打开/include/arc.listview.class.php文件,找到获取动态的分页列表GetPageListDM()函数末尾处的如下代码:
$plist = str_replace('.php?tid=', '', $plist);
将其替换为:
$plist = str_replace('plus/list.php?tid=', 'DedeCMS/DedeCMS5.7', $plist);
这样,列表分页链接格式从默认的plus/list.php?tid=x$x$xl修改为DedeCMS/DedeCMS5.7xxx.html。
3、内容分页的伪静态:
打开/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=x$x$xl修改为DedeCMS/DedeCMS5.7xxx.html。
4、TAG标签的伪静态:
打开/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标签URL从默认的/tags.php?/dedecms模板/变为/tags/dedecms模板/。
配置伪静态规则(针对IIS服务器)
对于IIS服务器,需要配置httpd.ini文件,添加以下伪静态规则:
[ISAPI_Rewrite] 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 RewriteRule ^(.*)/RMB/list([09]+).html $1/plus/list.php?tid=$2 [I] RewriteRule ^(.*)/RMB/list([09]+)([09]+)([09]+).html $1/plus/list.php?tid=$2&TotalResult=$3&PageNo=$4 [I] RewriteRule ^(.*)/RMB/huilv([09]+)([09]+).html $1/plus/view.php?arcID=$2&pageno=$3 [I] RewriteRule ^(.*)/(.*)_(.*)_([09]+).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/(.*)/([09])(?:?.*)* $1/tags.php?/$2/$3 [I] RewriteRule ^(.*)/tags/(.*)/([09])/(?:?.*)* $1/tags.php?/$2/$3/ [I]
保存为httpd.ini文件并上传到网站的根目录。
FAQs
问题1:如何确认我的服务器是否支持伪静态?
答:可以联系你的空间提供商询问是否支持伪静态,如果是自己的服务器,通常Apache服务器通过.htaccess文件配置伪静态,而IIS服务器需要加载Rewrite组件并配置httpd.ini文件来支持伪静态。
问题2:修改完PHP源码后,是否需要重启服务器?
答:一般情况下,不需要重启服务器,但为了确保修改生效,建议清除浏览器缓存或重新生成页面缓存,如果你的服务器有opcode缓存如APC或Zend Optimizer+,可能需要重启这些服务。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1212250.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复