要实现 Dedecms CMS 的全站伪静态,首先需要确保你的网站空间或服务器支持伪静态功能。这一点非常重要,因为如果不支持伪静态,所有的设置都将无效。你可以联系你的 IDC 提供商确认是否支持伪静态,或者如果你使用的是自己的服务器,通常情况下都可以轻松配置。对于 Apache 服务器,伪静态规则可以直接写入 `.htaccess` 文件中;而对于 IIS 服务器,则需要加载 Rewrite 组件,并在 `httpd.ini` 文件中进行配置。
接下来,在 Dedecms 后台开启伪静态支持:
// a. 在后台 - 系统参数 - 核心设置中,将“是否使用伪静态”选项设为“是”。
// b. 如果启用了问答模块,也需要在后台 - 系统参数 - 模块设置中,将“是否使用伪静态”选项设为“是”。
// c. 创建栏目时,选择“使用动态页”,发布文章时选择“仅动态浏览”。
update dede_arctype set isdefault=-1;
update dede_archives set ismake=-1;
### 实现 Dedecms 全站伪静态的具体步骤 1. **首页伪静态** 删除站点根目录下的 `index.html` 文件,避免与动态首页冲突。 2. **频道、列表页和文章页伪静态** 修改 `GetFileName()` 和 `GetTypeUrl()` 函数。对于 Dedecms V5.7,打开 `/include/helpers/channelunit.helper.php` 文件进行修改。
// 修改 GetFileName() 函数
if($cfg_rewrite == 'Y') {
return "/archives/view-" . $aid . "-1.html";
}
// 修改 GetTypeUrl() 函数
$reurl = "/category/list-" . $typeid . ".html";
$plist = str_replace('plus', 'category', $plist);
$plist = str_replace('.php?tid=', '-', $plist);
$plist = str_replace('plus', 'archives', $plist);
$PageList = str_replace(".php?aid=", "-", $PageList);
$row['link'] = $cfg_cmsurl . "/tags/" . urlencode($row['keyword']) . "/";
RewriteRule ^(.*)/index.html $1/index.php [I]
RewriteRule ^(.*)/category/list-([0-9]+).html $1/plus/list.php?tid=$2 [I]
RewriteRule ^(.*)/archives/view-([0-9]+)-([0-9]+).html $1/plus/view.php?arcID=$2&pageno=$3 [I]
RewriteRule ^category/list-([0-9]+).html$ /plus/list.php?tid=$1
RewriteRule ^archives/view-([0-9]+)-([0-9]+).html$ /plus/view.php?arcID=$1&pageno=$2