首页 / 开发手册 / 伪静态

伪静态

干净 URL 怎么来、换到 Apache / Nginx 要加什么规则、配不了伪静态怎么办。

默认地址:/list/news、/detail/hello | 路径式地址:/index.php/list/news

两种地址

形态长什么样条件
干净 URL(推荐)/list/news服务器开了重写(伪静态)
路径式/index.php/list/news任何环境都能用,不依赖重写

站内所有链接都由程序生成,模板里不用手写前缀 —— 改了地址形态,全站链接跟着变,不用去改模板。

用自带的服务器组件

若用的是随程序提供的那个服务器组件,伪静态已经配好了,装完即是干净 URL,不需要动任何规则。

用 Apache

在 wwwroot/ 下放一个 .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

前提是空间开了 mod_rewrite、并且允许 .htaccess 生效(有的空间默认关着,要单独开)。

用 Nginx

在站点的 server { } 里加:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

配不了伪静态怎么办

把 config/config.php 里的 base 改成 '/index.php':

'base' => '/index.php',

地址就退化成 /index.php/list/news 这种形式,功能一模一样,只是不那么好看。 空间不给配重写、或临时确认"是不是规则写错了"时就这么用。

⚠️ 配了伪静态却还是 404,多半是规则没生效或目录指错了: 规则要放在网站根目录(也就是 wwwroot/)里,不是程序包根目录。
没找到答案? 可以在 联系我们 留言说明使用场景,我们会补充进文档。