php实现伪静态
PHP实现伪静态的方法
伪静态(URL Rewrite)是通过服务器配置将动态URL转换为静态URL的技术,提升SEO友好性和用户体验。以下是几种常见的实现方式:
使用Apache的mod_rewrite模块
在网站根目录下创建或修改.htaccess文件,通过正则表达式匹配动态URL并重写为静态形式。

RewriteEngine On
RewriteRule ^article/([0-9]+).html$ article.php?id=$1 [L]
- 示例中,用户访问
/article/123.html时,实际由article.php?id=123处理。 - 需确保Apache已启用
mod_rewrite模块(在httpd.conf中取消注释LoadModule rewrite_module modules/mod_rewrite.so)。
Nginx配置伪静态
Nginx通过rewrite指令实现伪静态,配置在站点配置文件中(如/etc/nginx/conf.d/example.conf)。
location / {
rewrite ^/article/([0-9]+)\.html$ /article.php?id=$1 last;
}
- 重启Nginx生效:
systemctl restart nginx。
PHP框架内置路由
现代PHP框架(如Laravel、Symfony)提供路由功能,无需手动配置服务器规则。

Laravel示例:
// routes/web.php
Route::get('/article/{id}.html', function ($id) {
return ArticleController::show($id);
});
- 框架自动处理URL到控制器的映射,生成伪静态链接。
通过PHP脚本解析URL
若无法修改服务器配置,可用PHP解析URL路径。例如:
// index.php
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
if (preg_match('/^\/article\/(\d+)\.html$/', $path, $matches)) {
include 'article.php';
$article_id = $matches[1];
// 处理业务逻辑
}
- 将所有请求导向
index.php,再分发到具体逻辑。
注意事项
- 服务器支持:确认服务器支持重写模块(Apache需
mod_rewrite,Nginx需rewrite指令)。 - 规则顺序:复杂的规则应按优先级从高到低排列。
- 缓存问题:更新规则后清除浏览器或服务器缓存。
- SEO优化:确保伪静态URL语义清晰(如包含关键词)。
通过上述方法,可灵活实现伪静态,平衡美观性与功能性。






