如何去掉织梦CMS首页的index.php?

99ANYc3cd6
预计阅读时长 11 分钟
位置: 首页 织梦建站 正文
  1. 修改服务器配置:让服务器支持URL重写。
  2. 修改织梦配置:告诉织梦使用新的URL规则。

下面我将根据不同的服务器环境,为你提供详细的图文步骤。

织梦去掉index.php
(图片来源网络,侵删)

第一步:修改服务器配置(核心)

这一步是关键,目的是让服务器将不带index.php的请求,内部转发给index.php去处理,这通常通过创建一个.htaccess文件(Apache服务器)或修改nginx.conf配置(Nginx服务器)来实现。

Apache服务器(最常见)

如果你的网站使用的是Linux虚拟主机或自己搭建的LAMP环境,大概率是Apache服务器。

  1. 开启Rewrite模块

    • 对于自己的服务器,确保httpd.conf文件中加载了mod_rewrite.so模块,并且相关的AllowOverride设置为All
    • 对于虚拟主机,通常你的主机商已经开启了这个功能,你无需操作。
  2. 创建或编辑.htaccess文件

    织梦去掉index.php
    (图片来源网络,侵删)
    • 使用FTP工具或服务器的文件管理器,进入你网站的根目录(即包含index.phpdedetemplets等文件夹的目录)。
    • 查看是否存在一个名为.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]表示这是最后一条规则,匹配后不再继续。

Nginx服务器

如果你的网站使用的是Nginx(如LNMP环境)。

  1. 修改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;
    }
  2. 重载Nginx配置

    织梦去掉index.php
    (图片来源网络,侵删)
    • 保存配置文件后,需要执行命令让Nginx重新加载配置才能生效。
    • 在SSH中执行:nginx -s reload/etc/init.d/nginx reload

第二步:修改织梦CMS配置

服务器配置好后,还需要告诉织梦系统启用新的URL模式。

  1. 登录织梦后台

    • 用你的管理员账号登录织梦后台(你的域名/dede/)。
  2. 进入系统基本参数设置

    • 在后台左侧菜单中,找到 “系统” -> “系统基本参数”
  3. 修改核心设置

    • 在“核心设置”选项卡中,找到 “是否使用伪静态” 这一栏。
    • 将其选项从“否”修改为 “是”
    • 点击页面底部的 “保存” 按钮。
  4. 更新栏目缓存(可选但推荐)

    • 有时修改后栏目可能没有立即生效,可以到 “系统” -> “一键更新网站”
    • 在更新选项中,勾选 “更新栏目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错误或无法访问,请按以下步骤检查:

  1. 检查.htaccess文件

    • 确保文件名是.htaccess(注意前面的点),并且文件编码为UTF-8 without BOM,有些编辑器保存时会添加BOM头,导致服务器无法识别。
    • 确保文件内容没有错误,特别是代码的复制粘贴是否完整。
  2. 检查服务器是否支持Rewrite

    • 如果你不确定自己的服务器是否支持,可以在根目录创建一个phpinfo.php<?php phpinfo(); ?>,然后在浏览器中访问,在页面中搜索mod_rewrite,如果出现,说明已开启。
  3. 检查目录权限

    • 确保.htaccess文件所在的根目录以及index.php文件有正确的执行和读取权限(通常是755或644)。
  4. 联系主机商

    如果以上都检查无误,但仍然不行,可能是你的虚拟主机商禁用了URL重写功能,请联系你的主机商技术支持,询问如何开启伪静态或URL重写功能。

通过以上步骤,你就可以成功地为你的织梦CMS网站去掉index.php了。

-- 展开阅读全文 --
头像
织梦和discuz哪个文件
« 上一篇 2025-12-31
dede循环调子栏目下面的文章
下一篇 » 2025-12-31

相关文章

取消
微信二维码
支付宝二维码

目录[+]