核心原理
织梦CMS默认在生成静态页面时,会在URL后面加上 index.html,你的网站首页是 www.yourdomain.com,但织梦生成的静态文件路径是 www.yourdomain.com/index.html。

要去掉它,本质上是做两件事:
- 服务器层面:让服务器在访问
www.yourdomain.com/时,自动去寻找并返回www.yourdomain.com/index.html文件。 - 织梦系统层面:确保织梦生成的所有链接(如导航栏、友情链接等)都去掉
index.html。
修改织梦核心文件(最推荐、最彻底)
这是最根本、最彻底的方法,能确保所有由织梦系统生成的链接都符合你的要求。
操作步骤:
-
找到并打开文件 使用FTP工具或服务器的文件管理器,登录你的网站根目录,找到并打开以下文件:
/include/helpers/extend.helper.php
(图片来源网络,侵删) -
定位并修改代码 在该文件中,搜索
GetMkUrl()函数,你会找到类似下面这样的代码:if($isrule == 1) { $reurl = $GLOBALS['cfg_basehost'].$row['arcurl']; } else { $reurl = $GLOBALS['cfg_basehost'].$row['typedir'].'/'.$row['filename'].$GLOBALS['cfg_phpurl'].'/index.php?arcid='.$row['id']; } return $reurl;注意: 不同版本的织梦,代码行号或变量名可能略有不同,但核心逻辑是一样的。
-
进行修改 将上面的代码修改为:
if($isrule == 1) { // 如果是静态规则,直接返回原URL,无需处理 $reurl = $GLOBALS['cfg_basehost'].$row['arcurl']; } else { // 如果不是静态规则,需要将 'index.php?arcid=' 替换为 '?arcid=' // 这一步主要是为了动态URL,但我们主要关注静态URL的生成 $reurl = $GLOBALS['cfg_basehost'].$row['typedir'].'/'.$row['filename'].$GLOBALS['cfg_phpurl'].'?arcid='.$row['id']; } return $reurl;关键点: 这个修改主要是为了确保在非伪静态模式下,生成的动态链接也不会有多余的
index.php,对于静态链接,这个文件主要影响的是动态内容的链接生成。
(图片来源网络,侵删) -
(可选但推荐)修改
channel.unit.php导航栏等频道页的链接也可能包含index.html,你可以打开/include/typelink.class.php文件,搜索并修改GetOneTypeLink()函数中关于首页链接的部分,确保它返回的链接不带index.html,但通常第一步已经足够。 -
重新生成网站 登录织梦后台,进入【生成】->【更新主页HTML】,点击“更新主页HTML”,让织梦根据新的规则重新生成你的首页文件。
完成以上步骤后,织梦在生成新的链接时,就不会再自动添加 index.html 了。
使用服务器伪静态规则(推荐配合方法一)
这个方法主要是解决服务器访问问题,确保用户访问 www.yourdomain.com/ 时能正确显示首页内容。强烈建议此方法与方法一配合使用,以达到最佳效果。
对于 Apache 服务器
-
确保你的服务器开启了
mod_rewrite模块。 -
在网站根目录下创建或编辑一个名为
.htaccess的文件。 -
将以下代码添加到
.htaccess文件中:<IfModule mod_rewrite.c> RewriteEngine On # 将根目录的请求重定向到 index.html RewriteRule ^$ /index.html [L] # 其他伪静态规则... </IfModule>
说明: 这条规则的意思是,当访问根目录()时,服务器会内部重定向到
/index.html文件,但用户浏览器地址栏不会改变。
对于 Nginx 服务器
-
编辑你的 Nginx 配置文件,通常位于
/etc/nginx/nginx.conf或你网站配置文件中(如/etc/nginx/sites-available/yourdomain)。 -
在
server块中添加以下代码:server { listen 80; server_name www.yourdomain.com; root /path/to/your/website; # ... 其他配置 ... # 将根目录的请求重定向到 index.html location = / { try_files $uri $uri/ /index.html; } # ... 其他配置 ... }说明:
try_files指令会按顺序尝试查找文件,当访问 时,它会先找$uri(即 ,不存在),再找$uri/(即/index.html,如果存在则返回),如果还不存在,最后会返回/index.html。 -
保存配置文件后,执行
nginx -s reload命令重新加载 Nginx 配置。
修改模板文件(临时或特定场景)
如果你只是想修改首页本身的链接,而不想影响整个系统,可以修改模板文件。
-
找到首页模板 登录织梦后台,进入【模板】->【默认模板管理】,找到你正在使用的首页模板文件(通常是
index.htm)。 -
修改Logo或首页链接 检查模板中所有指向首页的链接,例如Logo的
<a>标签或导航栏的“首页”链接。- 修改前:
<a href="{dede:global.cfg_basehost/}/index.html"> - 修改后:
<a href="{dede:global.cfg_basehost/}/">
缺点:
- 这种方法只修改了模板中硬编码的链接,无法保证系统动态生成的链接(如友情链接、栏目链接等)会自动去掉
index.html。 - 每次更新模板后,都需要再次检查和修改。
- 修改前:
总结与推荐流程
为了达到最理想、最稳定的效果,建议按以下顺序操作:
- 【首选】修改核心文件:按照 方法一 的步骤,修改
/include/helpers/extend.helper.php文件,这是治本之策。 - 【配合】配置服务器伪静态:根据你的服务器类型(Apache 或 Nginx),按照 方法二 的配置,设置
.htaccess或 Nginx 配置文件,这是确保用户访问体验正确的关键。 - 【生成】更新网站:登录织梦后台,重新生成首页和所有相关页面,使新规则生效。
- 【检查】验证结果:清空浏览器缓存,访问你的网站首页,检查源代码中的所有链接,确认
index.html都已去除。
通过以上组合拳,你就可以彻底、干净地去除织梦首页的 index.html 了。
