LECMS子目录安装怎么配置伪静态
照着这篇做完,你就能让装在子目录里的 LECMS 正常走伪静态:栏目页、内容页都是 .html 结尾的静态地址,而不是一长串带问号的动态参数。
第一步:先确认三个前提信息
这一步要把环境摸清楚,不然后面改配置全靠猜。你需要确认:
- 子目录名:假设 LECMS 装在
https://www.example.com/lecms/,那子目录名就是lecms,下面所有配置里的/lecms/都要换成你自己的。 - 入口文件位置:LECMS 前台入口一般是子目录下的
index.php,后台入口是admin.php(部分版本会改名,以前台实际能访问的地址为准)。 - 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检查语法、重启服务、清缓存,然后实际点开一个内容页确认。 - 样式错乱多半是模板相对路径问题,和伪静态规则无关,别在这上面绕弯。
原文链接:https://www.gj0.com/thread-1022.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。