什么是伪静态

伪静态是相对于真静态来讲的,伪静态只是改变了URL格式,实际还是动态页面,有真静态一样的SEO,真静态访问一个静态页面,服务器(apache,nginx)直接读取磁盘静态文件,伪静态是动态文件还有数据库操作...

什么是重定向

通过各种方法,将各个网络请求重新定个方向,转到其他位置

http标准协议 中的3xx(302 303)

伪静态和重定向实现的方法

**1.apache主配置文件

针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.conf下书写。配置步骤如下:

(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;

(2)然后再在httpd.conf中书写如下规则:

RewriteEngine on

当访问任何以t_开头,以.html结尾的文件时,将$1用与(.*)匹配的字符替换后,访问相应的test.php页面

RewriteRule ^/t_(.*).html$ /test.php?id=$1

**2.通过.htaccess文件

针对apache服务器下的某一目录的配置,此种配置的Rewrite规则需在此目录下建立一个.htaccess文件来书写。会产生性能问题(判断是否有这个文件)配置步骤如下:

(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;

(2)修改httpd.conf文件中的"AllowOverride None"为"AllowOverride all",同时最好将Options也置为"all",否则可能会出问题。

(3)在目录中建立.htaccess文件,并用记事本打开,书写如下规则:

RewriteEngine on

RewriteRule ^/t_(.*).html$ /test.php?id=$1

**3.通过php脚本配置重定向

通过header函数重定向

RewriteRule

**1.R规则

RewriteEngine On
RewriteRule ^(.*)\.htm$ /$1.html [R=301] //url地址栏都会发生改变 外部重定向 永久重定向 对于SEO有效果 默认302临时重定向

**2.C规则

RewriteRule ^(.*)\.htm$ /$1.html [C]   // test.htm 最后访问test.php   这条匹配成功,才会匹配下一条规则
RewriteRule ^(.*)\.html$ /$1.php

**3.L规则

RewriteRule ^(.*) first.php?url=$1 [L]   // test.htm 匹配了这条,second那条不匹配了
RewriteRule ^(.*) second.php?url=$1

**4.NE规则

RewriteRule ^(.*)\.htm /index.html#$1 [R,NE]   // 不转义#号

**5.NC则

RewriteRule ^test/(.*)\.htm /tmp/$1.htm [NC]   // 不区分大小写

**6.G规则

RewriteRule ^test/.*$ - [G]   // 失效,如下载资源过了,下载的时间

**7.QSA规则

RewriteRule ^test/(.*) test.php?url=$1   // 在URI截取查询字符串

RewriteBase

RewriteBase 指定到哪个路径下找

RewriteCond

在RewriteRule之前有一个或多个RewriteCond指令

RewriteCond $1 "test"  //在浏览器输入 zbb.htm  还是找 zbb.htm   因为zbb不等于test    访问Rule 变量
RewriteRule ^(.*)\.htm $1.html RewriteCond %{HTTP_HOST} "127.0.0.1" //在浏览器输入IP地址访问 转换成 localhost访问 访问服务器变量
RewriteRule ^(.*)\.htm http://localhost/$1.html [R] RewriteCond %{HTTP_HOST} "127.0.0.(.*)" //在浏览器输入IP地址访问 转换成 localhost访问 访问服务器变量
RewriteCond $1 '1' //这是第二个条件,$1代表"127.0.0.(.*)" 括号内匹配的值
RewriteRule ^(.*)\.htm http://localhost/$1.html [R] RewriteCond C:/wamp/www -d //是否是个目录 满足  [OR] 通过or只需满足一个条件 
RewriteCond C:/wamp/www1 -d //是否是个目录 不满足
RewriteRule ^(.*)\.htm $i.html //不会生效,前两个条件要都满足

RewriteMap

RewriteMap pages  txt:c:/wamp/map.txt  //配置在apache主配置文件的Directory 标签外部 pages为名字,txt为文件类型,后面为文件路径,主要写映射关系
test1 pagetest1
test2 pagetest2
RewriteRule ^(.*)\.shtml ${pages:$1} RewriteMap dirs rnd:c:/wamp/dirs.txt //随机映射
URL1 S1|S2|S3
URL2 W1|W2|W3
RewriteRule ^(.*)\.shtml /${dirs:$1|root}/$1.php

临时重定向与永久重定向

面向搜索引擎机器人,301永久,不是顶级的目录A 页面做301重定向到目录B,则可以正常收录B页面(公司内部换域名,重定向到另一个页面)

面向搜索引擎机器人,302临时,顶级的目录A 页面做302重定向到目录B,则收录的是A页面(网站重定向到别的好的资源网站)

php伪静态与重定向的更多相关文章

  1. 新浪sae url rewrite(伪静态、重定向)详解

    新浪sae url rewrite(伪静态.重定向)详解 http://www.veryhuo.com phpclubs 2011-11-14 投递稿件 sae全程Sina App Engine,真是 ...

  2. 新浪SAE URLRewrite(伪静态、重定向)详解

    SAE全称Sina App Engine,真是一个好东西,他有很多优秀的特性,简单来说SAE就是一个简单高效的分布式Web服务开发.运行平台.支持现在常用的 PHP+Mysql 环境,在开发中难免会碰 ...

  3. 伪静态与重定向--RewriteBase

    RewriteBase用于设置目录级重写的基准URL,即所有的重定向都是基于这个URL.内部重定向可能看不出效果,但是在外部重定向(使用R flag后),如果不手动指定 / 为根目录,那么就会去整个磁 ...

  4. 伪静态与重定向--RewriteRule

    环境:windows 10,phpstudy,sublime text.服务器使用Apache,网站根目录为E:\phpstudy\www\,所以.htaccess放在www目录下. RewriteR ...

  5. nginx根据条件跳转+跳转规则

    好的参考博文: nginx rewrite规则 自己写的时候参考这两个 Nginx 伪静态Rewrite,重定向Location配置总结(转) nginx rewrite规则语法 一.输入子目录跳转 ...

  6. Linux系统将http转为https

    想把网站由http访问转变为https访问并没有想象中那么难,网上查了一些资料,想要转为https需要SSL安全证书,这里推荐一款景安网络的证书,可以免费试用一年时间,自己拿来实践还是很不错的选择. ...

  7. IIS7.5+WebConfig实现页面伪静态和301重定向

    IIS7.5+WebConfig实现页面伪静态和301重定向 使用URLRewriter组件在windows 2003 +iis 6.0下配置伪静态的文章网络上一大堆.但在iis7.0或iis 7.5 ...

  8. Nginx 重定向 伪静态 rewrite index.php

    参考https://www.kancloud.cn/manual/thinkphp5/177576 thinkphp入口文件同目录下添加.把下面的内容保存为.htaccess文件 <IfModu ...

  9. 黄聪:wordpress如何使用wp_rewrite实现自定义伪静态,非301重定向。

    今天,想通过wordpress实现 http://hcsem.com/a?h-1 伪静态为 http://hcsem.com/a-1.html 找了很多资料,终于搞定. 只需要在functions.p ...

随机推荐

  1. C++ 设置透明背景图片

    背景:            有两个图片,一个是目标背景图片, 一个是带有自身背景色彩的彩色图片            先将这彩色图片绘制到目标背景图片中, 这一步通过BITBLT就可实现.   但实 ...

  2. PowerDesigner 设置code不等于name

    设置 code不等于name:  工具 - 常规选项 - “Dialog” - "code不等于name",取消选中

  3. python基础学习 Day19 面向对象的三大特性之多态、封装 property的用法(1)

    一.课前内容回顾 继承作用:提高代码的重用性(要继承父类的子类都实现相同的方法:抽象类.接口) 继承解释:当你开始编写两个类的时候,出现了重复的代码,通过继承来简化代码,把重复的代码放在父类中. 单继 ...

  4. 微服务之间的调用(Ribbon与Feign)

    来源:https://blog.csdn.net/jrn1012/article/details/77837658 使用Eureka作为服务注册中心,在服务启动后,各个微服务会将自己注册到Eureka ...

  5. HTML 设置字体

    HTML,CSS,font-family:中文字体的英文名称 (宋体 微软雅黑)     宋体 SimSun 黑体 SimHei 微软雅黑 Microsoft YaHei 微软正黑体 Microsof ...

  6. Java获得数据库查询结果的列数和行数,打印查询结果

    Java连接数据库及简单操作见我以前的一篇随笔:http://www.cnblogs.com/meitian/p/5036332.html   一.获取查询结果的行数和列数 查询结果为ResultSe ...

  7. Js笔记(对象,构造函数,原型,原型链,继承)及一些不熟悉的语法

    对象的特性: 1.唯一标识性,即使完全不一样的对象,内存地址也不同,所以他们不相等 2.对象具有状态,同一个对象可能处在不同状态下 3.对象具有行为,即对象的状态可能因为他的行为产生变迁 Js直到es ...

  8. linux下的ping工具--fping

    前言:       如果想ping 大量的不连续的地址,有想知道放回结果,在linux系统下有一个非常合适的工具--fping. Fping 官网:http://www.fping.org/ Fpin ...

  9. PAT1020 (已知中序,后序遍历转前序遍历)

    已知后序与中序输出前序(先序):后序:3, 4, 2, 6, 5, 1(左右根)中序:3, 2, 4, 1, 6, 5(左根右) 已知一棵二叉树,输出前,中,后时我们采用递归的方式.同样也应该利用递归 ...

  10. unity实现3D物体上的事件监听处理

    想要在3D物体上实现全套事件监听处理: OnMouse系列 OnTrigger系列 OnPointer系列 OnDrag系列   1.在相机中添加Physics Raycaster组件 2.3D物体上 ...