PHP 伪静态如何实现
伪静态实现原理
伪静态是通过服务器重写规则(如Apache的mod_rewrite或Nginx的rewrite)将动态URL转换为静态形式的URL。实际处理仍由动态脚本完成,但对外显示为静态路径,提升SEO友好性和用户体验。
Apache环境实现方法
在网站根目录创建或修改.htaccess文件,启用mod_rewrite模块后添加规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^article/([0-9]+).html$ article.php?id=$1 [L]
此规则将/article/123.html映射到article.php?id=123。

Nginx环境实现方法
在Nginx配置文件的server段内添加重写规则:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ ^/article/([0-9]+)\.html$ {
rewrite ^/article/([0-9]+)\.html$ /article.php?id=$1 last;
}
PHP代码配合处理
动态脚本需正常接收参数。例如article.php处理逻辑:

$articleId = isset($_GET['id']) ? intval($_GET['id']) : 0;
// 根据$articleId查询数据库并输出内容
注意事项
- 服务器必须支持URL重写模块
- 规则需放在其他规则之前
- 复杂参数需使用正则表达式捕获
- 测试时清除浏览器缓存
多参数处理示例
Apache规则示例:
RewriteRule ^product/([a-z]+)/([0-9]+)/?$ product.php?category=$1&id=$2 [NC,L]
Nginx规则示例:
rewrite ^/product/([a-z]+)/([0-9]+)/?$ /product.php?category=$1&id=$2 last;






