php 伪静态实现
伪静态实现方法
伪静态是指通过URL重写技术,将动态URL转换为静态形式的URL,提升SEO友好性和用户体验。PHP中常用Apache的mod_rewrite模块或Nginx的配置实现。
Apache环境配置
在网站根目录创建或修改.htaccess文件,启用mod_rewrite模块:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
此规则将所有非真实存在的文件或目录请求重写到index.php,并将原始URL作为参数传递。

Nginx环境配置
在Nginx的server配置块中添加重写规则:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
如果需要对特定路径进行伪静态处理,可使用正则匹配:

location ~ ^/article/(\d+)\.html$ {
rewrite ^/article/(\d+)\.html$ /article.php?id=$1 last;
}
PHP处理伪静态参数
在index.php中解析URL参数,实现路由分发:
$request = $_SERVER['REQUEST_URI'];
$params = explode('/', trim($request, '/'));
// 根据$params数组内容进行路由处理
动态生成伪静态链接
在PHP代码中生成伪静态链接时,需保持URL格式统一:
$article_id = 123;
$static_url = "/article/{$article_id}.html";
注意事项
确保服务器已启用URL重写模块,Apache需开启AllowOverride All权限。伪静态规则需根据实际项目结构调整,避免与真实静态文件冲突。对于复杂路由,建议结合框架(如Laravel、ThinkPHP)的路由功能实现更灵活的伪静态管理。






