- 修改服务器配置:让服务器支持URL重写。
- 修改织梦配置:告诉织梦使用新的URL规则。
下面我将根据不同的服务器环境,为你提供详细的图文步骤。

(图片来源网络,侵删)
第一步:修改服务器配置(核心)
这一步是关键,目的是让服务器将不带index.php的请求,内部转发给index.php去处理,这通常通过创建一个.htaccess文件(Apache服务器)或修改nginx.conf配置(Nginx服务器)来实现。
Apache服务器(最常见)
如果你的网站使用的是Linux虚拟主机或自己搭建的LAMP环境,大概率是Apache服务器。
-
开启Rewrite模块
- 对于自己的服务器,确保
httpd.conf文件中加载了mod_rewrite.so模块,并且相关的AllowOverride设置为All。 - 对于虚拟主机,通常你的主机商已经开启了这个功能,你无需操作。
- 对于自己的服务器,确保
-
创建或编辑
.htaccess文件
(图片来源网络,侵删)- 使用FTP工具或服务器的文件管理器,进入你网站的根目录(即包含
index.php、dede、templets等文件夹的目录)。 - 查看是否存在一个名为
.htaccess的文件,如果不存在,就新建一个。 - 将以下代码完整复制并粘贴到
.htaccess文件中,然后保存。
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(dede|special|plus|member|data)/(.*)$ /$1/$2 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/$1 [L] </IfModule>代码解释:
RewriteEngine On:开启URL重写引擎。RewriteRule ^(dede|special|plus|member|data)/(.*)$ /$1/$2 [L]:这是一个重要的保护规则,它防止后台管理目录(如dede)、会员中心(member)、专题(special)等被重写,避免访问出错。RewriteCond %{REQUEST_FILENAME} !-f:如果请求的不是一个文件(比如不是一个真实存在的图片或CSS文件)。RewriteCond %{REQUEST_FILENAME} !-d:如果请求的不是一个目录。RewriteRule ^(.*)$ /index.php/$1 [L]:如果以上两个条件都满足,就将所有请求重写到index.php后面。[L]表示这是最后一条规则,匹配后不再继续。
- 使用FTP工具或服务器的文件管理器,进入你网站的根目录(即包含
Nginx服务器
如果你的网站使用的是Nginx(如LNMP环境)。
-
修改Nginx配置文件
- 找到你的网站配置文件,通常位于
/usr/local/nginx/conf/vhost/目录下,文件名是你的域名。 - 在
server块中,添加或修改以下location规则。
location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; break; } }- 注意:有些Nginx版本可能需要更复杂的规则,特别是为了保护后台目录,如果上面的规则不行,可以尝试下面这个更完整的版本:
location / { try_files $uri $uri/ /index.php?$query_string; } # 保护后台目录等 location ~* ^/(dede|special|plus|member|data)/ { deny all; } - 找到你的网站配置文件,通常位于
-
重载Nginx配置
(图片来源网络,侵删)- 保存配置文件后,需要执行命令让Nginx重新加载配置才能生效。
- 在SSH中执行:
nginx -s reload或/etc/init.d/nginx reload
第二步:修改织梦CMS配置
服务器配置好后,还需要告诉织梦系统启用新的URL模式。
-
登录织梦后台
- 用你的管理员账号登录织梦后台(
你的域名/dede/)。
- 用你的管理员账号登录织梦后台(
-
进入系统基本参数设置
- 在后台左侧菜单中,找到 “系统” -> “系统基本参数”。
-
修改核心设置
- 在“核心设置”选项卡中,找到 “是否使用伪静态” 这一栏。
- 将其选项从“否”修改为 “是”。
- 点击页面底部的 “保存” 按钮。
-
更新栏目缓存(可选但推荐)
- 有时修改后栏目可能没有立即生效,可以到 “系统” -> “一键更新网站”。
- 在更新选项中,勾选 “更新栏目HTML” 和 “更新文档HTML”,然后执行更新。
第三步:测试与验证
完成以上两步后,你的网站应该就去掉index.php了。
- 测试首页:直接访问你的域名(
www.yourdomain.com),看是否能正常打开。 - 测试栏目页:点击一个栏目,观察浏览器地址栏是否变成了
www.yourdomain.com/lanmu/的形式,而不是www.yourdomain.com/index.php/lanmu/。 - 测试文章页:点击一篇文章,观察URL是否为
www.yourdomain.com/a/2025/xxxx.html这样的形式。
如果所有页面都正常显示,说明操作成功!
常见问题排查
如果网站出现404错误或无法访问,请按以下步骤检查:
-
检查
.htaccess文件- 确保文件名是
.htaccess(注意前面的点),并且文件编码为UTF-8 without BOM,有些编辑器保存时会添加BOM头,导致服务器无法识别。 - 确保文件内容没有错误,特别是代码的复制粘贴是否完整。
- 确保文件名是
-
检查服务器是否支持Rewrite
- 如果你不确定自己的服务器是否支持,可以在根目录创建一个
phpinfo.php为<?php phpinfo(); ?>,然后在浏览器中访问,在页面中搜索mod_rewrite,如果出现,说明已开启。
- 如果你不确定自己的服务器是否支持,可以在根目录创建一个
-
检查目录权限
- 确保
.htaccess文件所在的根目录以及index.php文件有正确的执行和读取权限(通常是755或644)。
- 确保
-
联系主机商
如果以上都检查无误,但仍然不行,可能是你的虚拟主机商禁用了URL重写功能,请联系你的主机商技术支持,询问如何开启伪静态或URL重写功能。
通过以上步骤,你就可以成功地为你的织梦CMS网站去掉index.php了。
