修改首页模板文件(最推荐、最彻底的方法)
这是最核心、最推荐的方法,它通过修改网站的实际文件来解决问题,一劳永逸,并且对 SEO 最为友好。

原理:
DedeCMS 的首页内容是由一个名为 index.htm 的模板文件生成的,当你访问 yourdomain.com/ 时,服务器会查找并执行这个模板文件,然后将生成的静态 HTML 内容(即 index.html)发送给浏览器,我们的目标是让服务器直接将 index.htm 生成的结果作为首页,而不生成一个额外的 index.html 文件。
操作步骤:
-
登录网站后台 使用你的管理员账号登录 DedeCMS 后台。
-
找到并修改首页模板
(图片来源网络,侵删)- 在后台左侧菜单栏,依次进入 “模板” -> “模板管理”。
- 在模板管理页面,点击最上方的 “默认模板管理” 或 “全局标记测试” 旁边的 “主页模板” 链接。
- 你会看到当前首页模板的文件名,通常是
index.htm。 - 点击 “选择” 或 “修改” 按钮,进入模板编辑器。
-
修改模板内容
- 在模板编辑器中,找到模板文件最顶部的代码。
- 找到类似下面这一行:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>{dede:global.cfg_webname/}</title> ... - 在
<title>标签之后,<head>标签结束之前,添加一行关键的 “不缓存” 代码:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>{dede:global.cfg_webname/}</title> {dede:config keep='yes'/} ... - 解释:
{dede:config keep='yes'/}这句代码的作用是告诉 DedeCMS,这个模板文件生成的页面是动态的,不需要生成静态的.html文件,这样,访问首页时,系统会直接解析这个模板并输出结果,而不会生成index.html这个静态文件。
-
更新首页
- 保存模板修改。
- 回到后台首页,在左侧菜单找到 “主页管理” -> “主页更新”。
- 在更新页面,你可以选择只更新首页,点击“更新主页”按钮。
- 系统会重新生成首页内容,由于我们设置了
keep='yes',这次更新会清除旧的index.html文件,并确保以后不再生成它。
完成!
你的网站首页 http://yourdomain.com/ 将不再指向 index.html,而是直接由模板文件动态生成,URL 地址栏会变得非常干净。
设置网站服务器重定向(辅助方法,强烈推荐配合方法一使用)
虽然方法一已经解决了核心问题,但设置服务器重定向可以确保:

- 访问
http://yourdomain.com/index.html的用户会被自动跳转到http://yourdomain.com/重复。 - 符合搜索引擎的最佳实践,将权重集中到根域名。
你需要根据你的服务器类型来选择操作。
对于 Apache 服务器
-
确保你的服务器开启了
mod_rewrite模块(大部分虚拟主机都已开启)。 -
在网站根目录下找到
.htaccess文件,如果不存在,就新建一个。 -
在文件中添加以下规则:
# 将 index.html 的请求重定向到根目录 RewriteCond %{THE_REQUEST} /index\.html [NC] RewriteRule ^(.*)index\.html$ /$1 [R=301,L] # 如果你的网站开启了伪静态,确保以下规则存在 # 这是 DedeCMS 默认的伪静态规则 RewriteEngine On RewriteBase / RewriteRule ^index\.html$ / [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]解释:
RewriteCond %{THE_REQUEST} /index\.html [NC]:匹配所有直接请求index.html的行为。RewriteRule ^(.*)index\.html$ /$1 [R=301,L]:将匹配到的请求以 301(永久重定向)的方式跳转到根目录。$1是一个占位符,用于保留 URL 中的路径部分。
对于 Nginx 服务器
-
登录你的 Nginx 服务器。
-
找到你的网站配置文件,通常在
/etc/nginx/sites-available/目录下。 -
在
server块中添加以下重定向规则:server { listen 80; server_name yourdomain.com www.yourdomain.com; root /path/to/your/website; # 将 index.html 的请求重定向到根目录 location = /index.html { return 301 /; } # ... 其他配置 ... # DedeCMS 伪静态规则 location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } } }解释:
location = /index.html:精确匹配/index.html这个路径。return 301 /;:直接返回 301 重定向到根目录 。
-
保存配置文件后,执行
nginx -s reload命令重新加载配置。
修改系统配置文件(不推荐,有局限性)
有些教程会建议修改 include/ common.inc.php 文件,将首页设置为动态浏览,这种方法在某些情况下有效,但会带来负面影响,不推荐新手使用。
操作步骤(仅作了解):
- 打开
/include/common.inc.php文件。 - 找到类似
define('DEDETEMPLATEPATH', DEDEROOT.'/templets/'.$cfg_df_style);的代码。 - 在其附近找到
$cfg_indexurl = 'index.php';这一行(如果存在),并确保它没有被注释。 - 这么做的原理是强制 DedeCMS 将首页 URL 指向
index.php,从而绕过index.html的生成。
为什么不推荐?
- 影响性能: 每次访问首页都需要解析 PHP,而不是直接返回静态的 HTML 文件,会增加服务器负担,降低首页加载速度。
- 可能不生效: 如果你的服务器配置或伪静态规则有问题,这个方法可能无效。
- 不如方法一灵活: 方法一通过模板控制,更加精准和灵活。
总结与最佳实践
| 方法 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|
| 修改首页模板 | 彻底、高效、SEO友好,一劳永逸。 | 需要后台操作,理解模板原理。 | ⭐⭐⭐⭐⭐ (首选) |
| 服务器重定向 | SEO最佳实践,解决权重分散,用户体验好。 | 需要服务器权限,操作稍复杂。 | ⭐⭐⭐⭐⭐ (强烈配合方法一使用) |
| 修改系统配置 | 操作简单,无需后台更新。 | 影响性能,可能不兼容,有局限性。 | ⭐ (不推荐) |
最终建议方案:
- 首先使用【方法一】,修改首页模板
index.htm,添加{dede:config keep='yes'/}并更新主页,这是解决问题的关键。 - 然后根据你的服务器类型,使用【方法二】,配置
.htaccess(Apache) 或 Nginx 配置文件,将index.html的请求 301 重定向到根目录,这是完善 SEO 和用户体验的保障。
组合使用这两种方法,你的网站首页就能完美地去掉 index.html 后缀,并且对搜索引擎和用户都非常友好。
