欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP重定向与伪静态区别

程序员文章站 2024-03-13 19:11:33
什么是伪静态 伪静态是相对真静态来讲 伪静态只是把url改成静态形式,实际上还是动态网页 伪静态有着真静态一样的seo 什么是重定向(很常用重点学习) 将网络请求...

什么是伪静态

伪静态是相对真静态来讲
伪静态只是把url改成静态形式,实际上还是动态网页
伪静态有着真静态一样的seo

什么是重定向(很常用重点学习)

将网络请求重新定一个方向,转到别的位置
分为内部和外部,区别是外部重定向时,浏览器地址栏中的url会发生变化
http原本就支持重定向3xx
使用重定向技术实现伪静态

重定向的环境搭建

安装web服务器(apache/nginx)
加载mod_rewrite.so模块

重定向实现方式(主要有3种)

通过配置web服务器主配置<directory> (生产环境)
通过.htaccess (开发环境)
通过脚本实现(外部重定向)

.htaccess重定向实现步骤

第一步:在apache主配置文件里配置allowoverride all(重启)
第二步:在.htaccess文件里配置

rewriteengine on 
rewriterule ^(.*)\.html$ $1.php  //匹配html改成php

web服务器主配置实现重定向

直接在apache配置文件中找到<directory>是web项目地址的加上下面代码:

rewriteengine on 
rewriterule ^(.*)\.html$ $1.php  //匹配html改成php

rewriterule语法说明

rewriterule 匹配模式 替换的url [flags]
匹配模式支持prel格式的正则表达式与rewrite变量
替换的url支持匹配模式的结果与rewrite变量
多个flags用逗号隔开(例如:[r=301,c])

rewriterule flags说明

r 强制外部重定向,浏览器地址栏url会发生变化,301永久重定向,302临时重定向,例子:[r=301],[r](代表301)
c 链接下一条规则,如果有多条规则的话,则当前加[c]的规则与下条规则成为一个整体,第一天不匹配,那么下一条就不进入
l 停止匹配后面的规则,如果有多条规则的话,当加[l]的规则匹配后,则停止后面规则的匹配
ne 不对url的特殊字符进行转义
nc 不区分大小写
g 请求的网页失效,服务器返回410
qsa 用于在url中截取查询字符串