php伪静态与重定向
什么是伪静态
伪静态是相对于真静态来讲的,伪静态只是改变了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伪静态与重定向的更多相关文章
- 新浪sae url rewrite(伪静态、重定向)详解
新浪sae url rewrite(伪静态.重定向)详解 http://www.veryhuo.com phpclubs 2011-11-14 投递稿件 sae全程Sina App Engine,真是 ...
- 新浪SAE URLRewrite(伪静态、重定向)详解
SAE全称Sina App Engine,真是一个好东西,他有很多优秀的特性,简单来说SAE就是一个简单高效的分布式Web服务开发.运行平台.支持现在常用的 PHP+Mysql 环境,在开发中难免会碰 ...
- 伪静态与重定向--RewriteBase
RewriteBase用于设置目录级重写的基准URL,即所有的重定向都是基于这个URL.内部重定向可能看不出效果,但是在外部重定向(使用R flag后),如果不手动指定 / 为根目录,那么就会去整个磁 ...
- 伪静态与重定向--RewriteRule
环境:windows 10,phpstudy,sublime text.服务器使用Apache,网站根目录为E:\phpstudy\www\,所以.htaccess放在www目录下. RewriteR ...
- nginx根据条件跳转+跳转规则
好的参考博文: nginx rewrite规则 自己写的时候参考这两个 Nginx 伪静态Rewrite,重定向Location配置总结(转) nginx rewrite规则语法 一.输入子目录跳转 ...
- Linux系统将http转为https
想把网站由http访问转变为https访问并没有想象中那么难,网上查了一些资料,想要转为https需要SSL安全证书,这里推荐一款景安网络的证书,可以免费试用一年时间,自己拿来实践还是很不错的选择. ...
- IIS7.5+WebConfig实现页面伪静态和301重定向
IIS7.5+WebConfig实现页面伪静态和301重定向 使用URLRewriter组件在windows 2003 +iis 6.0下配置伪静态的文章网络上一大堆.但在iis7.0或iis 7.5 ...
- Nginx 重定向 伪静态 rewrite index.php
参考https://www.kancloud.cn/manual/thinkphp5/177576 thinkphp入口文件同目录下添加.把下面的内容保存为.htaccess文件 <IfModu ...
- 黄聪:wordpress如何使用wp_rewrite实现自定义伪静态,非301重定向。
今天,想通过wordpress实现 http://hcsem.com/a?h-1 伪静态为 http://hcsem.com/a-1.html 找了很多资料,终于搞定. 只需要在functions.p ...
随机推荐
- javascript 模拟java 实现继承的5种方式
1.继承第一种方式:对象冒充 function Parent(username){ this.username = username; this.hello = function(){ alert(t ...
- 高效Java敏感词、关键词过滤工具包_过滤非法词句
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- mysql 存储过程小问题
mysql写的存储过程的一些小问题 DELIMITER $$ USE `yzhoteldb`$$ DROP PROCEDURE IF EXISTS `yz_waveData`$$ CREATE DEF ...
- Windows Server 2012开启磁盘性能计数器
Windows Server 2012默认情况下已经禁用了磁盘性能计数器,打开任务管理器后,无法像Win8一样在性能选项卡中看到“磁盘”使用情况,可能是因为微软考虑到安装此服务器系统的硬件都会非常好, ...
- java容器的理解(collection)
容器类(Conllection)对于一个开发者来说是最强大的工具之一,可以大幅提高编程能力.容器是一个将多个元素组合到一个单元的对象,是代表一组对象的对象,容器中的对象成为它的元素. 容器适用于处理各 ...
- 处女座和小姐姐(三)-数位dp1.0
链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 题目描述 经过了选号和漫长的等待,处女座终于拿到了给小姐姐定制的手环,小姐姐看到以后直呼666! ...
- justify-content & align-items & align-content
[justify-content & align-items & align-content] 三个属性均作用于container. justify-content用于控制main-a ...
- Spread Syntax
[Spread Syntax] The spread syntax allows an expression to be expanded in places where multiple argum ...
- Java 几种锁
自旋锁 自旋锁顾名思义,它会等待一定时间(自旋),在这期中会什么都不做就是等资源被释放,好处在于没有了内核态用户态切换的效率损失,但是如果它一直不能访问到资源的话就会一直占用cpu资源,所以它会循环一 ...
- Linux 学习总结(三)
一. yum 命令 .列出所有可更新的软件清单命令:yum check-update .更新所有软件命令:yum update .仅安装指定的软件命令:yum install <package_ ...