LECMS子目录安装怎么配置伪静态

liulian
liulian 初级会员超兽战士
发布于 2026-10-08 15:12 ·1 浏览 ·0 回复

照着这篇做完,你就能让装在子目录里的 LECMS 正常走伪静态:栏目页、内容页都是 .html 结尾的静态地址,而不是一长串带问号的动态参数。

第一步:先确认三个前提信息

这一步要把环境摸清楚,不然后面改配置全靠猜。你需要确认:

  1. 子目录名:假设 LECMS 装在 https://www.example.com/lecms/,那子目录名就是 lecms,下面所有配置里的 /lecms/ 都要换成你自己的。
  2. 入口文件位置:LECMS 前台入口一般是子目录下的 index.php,后台入口是 admin.php(部分版本会改名,以前台实际能访问的地址为准)。
  3. Web 服务器类型:Nginx 还是 Apache。宝塔面板在「网站 → 站点 → 设置」里能看到;LNMP 一键包看 /usr/local/nginx/conf/vhost/你的域名.conf 是否存在。

注意:子目录安装 90% 的伪静态失败,都是因为直接复制了官网给的「根目录版」规则。根目录规则里只有 /index.php,没有子目录前缀,Nginx 会跑到网站根目录去找入口文件,结果必然 404。

第二步:在后台把伪静态模式打开

这一步让程序生成静态样式的链接。登录后台,进入「系统」→「网站设置」→「URL 设置」(不同版本菜单名可能叫「伪静态设置」,认准「URL 模式」这一项),把 URL 模式 从「普通模式」改成「PATHINFO」或「REWRITE」,伪静态后缀填 html,保存。

保存后到前台刷新一个栏目页,如果链接已经变成 /lecms/list-1.html 这种形式,说明后台设置生效了;此时点进去大概率是 404,属于正常现象,下一步修服务器配置。

第三步:Nginx 环境下配置重写规则

这一步给子目录单独加一段 location,让不存在的文件都转交给子目录里的入口文件处理。

宝塔面板:网站 → 站点 → 设置 → 伪静态,把下面内容粘进去保存(把 lecms 换成你的子目录名):

location /lecms/ {
    if (!-e $request_filename) {
        rewrite ^/lecms/(.*)$ /lecms/index.php?s=/$1 last;
    }
}

LNMP 环境则编辑 /usr/local/nginx/conf/vhost/你的域名.conf,加入同样的 location 段,然后执行 nginx -t 检查语法,通过后 nginx -s reload 重载。

注意:s=/$1 里的那个斜杠不能省。写成 s=$1 时,部分版本会解析不出模块名,表现为所有页面都跳回首页。另外重写规则要放在 location ~ \.php 那段之前,顺序反了不生效。

第四步:Apache 环境下配置重写规则

Apache 靠子目录里的 .htaccess 生效。在 LECMS 安装目录(即 /www/wwwroot/你的域名/lecms/)下新建或编辑 .htaccess,写入:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /lecms/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /lecms/index.php [L]
</IfModule>

关键在 RewriteBase /lecms/ 和最后一行重写目标都要带子目录。改完重启 Apache 或等几秒即可。

注意:确认 Apache 已加载 rewrite 模块(a2enmod rewrite),并且站点配置里子目录的 AllowOverride 是 All。如果是 None,.htaccess 会被完全忽略,怎么改都没反应。

第五步:验证并处理残留问题

访问一个内容页,比如 https://www.example.com/lecms/show-12.html,能正常打开就成功了。如果还有问题,按现象对照处理:

  • 仍然 404:规则里的子目录名拼错,或规则没生效(清一次 Nginx/Apache 缓存再看)。
  • 页面能开但样式全乱、图片不显示:模板里用了相对路径。子目录安装必须依赖 __ROOT__ 这类常量输出绝对路径,检查模板文件的 CSS、JS 引用。
  • 后台正常、前台 404:后台的 URL 模式没保存成功,回第二步重设。

小结

  • 子目录安装的核心一句话:所有重写规则里的路径都要带上子目录前缀,包括重写条件和重写目标。
  • Nginx 用 location /子目录/ 包一段 rewrite;Apache 用 RewriteBase /子目录/。
  • 先在后台把 URL 模式切成 REWRITE/PATHINFO,再去改服务器配置,顺序别颠倒。
  • 改完必须验证:nginx -t 检查语法、重启服务、清缓存,然后实际点开一个内容页确认。
  • 样式错乱多半是模板相对路径问题,和伪静态规则无关,别在这上面绕弯。
版权声明:本文来自 GJ站长论坛《LECMS子目录安装怎么配置伪静态》
原文链接:https://www.gj0.com/thread-1022.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~