当前位置:首页 > PHP

PHP 伪静态如何实现

2026-02-13 17:45:20PHP

伪静态实现原理

伪静态是通过服务器重写规则(如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

PHP 伪静态如何实现

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处理逻辑:

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;

分享给朋友:

相关文章

vue如何实现tap

vue如何实现tap

实现Tap事件的方法 在Vue中实现类似移动端的tap事件(轻触)可以通过以下几种方式完成。原生移动端浏览器通常通过touchstart和touchend事件组合模拟tap,而Vue中可以封装自定义指…

vue如何实现冒泡

vue如何实现冒泡

Vue 实现冒泡排序的步骤 在 Vue 中实现冒泡排序,可以通过数据绑定和计算属性来动态展示排序过程。以下是一个完整的实现示例。 示例代码 <template> <div&g…

vue中如何实现循环

vue中如何实现循环

循环渲染列表数据 在Vue中,使用v-for指令实现循环渲染。基本语法为v-for="(item, index) in items",其中items是数据源数组,item是当前遍历的元素,index是…

php如何实现静态化

php如何实现静态化

PHP 实现静态化的方法 使用 ob_start() 和 ob_get_contents() 利用 PHP 的输出缓冲功能捕获动态生成的页面内容,将其保存为静态文件。这种方法适用于内容不频繁变化的页面…

vue如何实现登录

vue如何实现登录

Vue 实现登录功能的方法 创建登录表单组件 在 Vue 项目中创建一个登录表单组件,通常命名为 Login.vue。表单包含用户名和密码输入框,以及提交按钮。 <template>…

java如何实现多线程

java如何实现多线程

实现多线程的方法 在Java中,实现多线程主要有两种方式:继承Thread类和实现Runnable接口。此外,还可以使用ExecutorService等高级工具类来管理线程。 继承Thread类…