php 之apache rewrite伪静态的简单配置和使用

原创 2015年01月13日 14:46:09

      1、为什么要使用伪静态:

真正的静态页面空间储存量大,进行删除或者更新这些html文件时可造成大量文件碎片,破坏磁盘坏道,

动态页面虽然可以实时更新,但是有时会导致死循环,对搜索引擎不友好,而伪静态却不会出现这种情况。

伪静态可以更好的缓解服务器的压力,增强搜索引擎对页面的收录;

 

      2、伪静态可以做什么:

rewrite 主要的功能就是实现url跳转和隐藏真实地址,可以实现虚拟的静态,虚拟的目录,域名跳转,隐藏后台真实地址等,基于perl语言的正则表达式规范。
一个普通的动态链接可以通过rewrite 重写为.html  的链接
/article.php?id=23
可以重写为:/article_23.html
也可重写为目录的形式:/article_23/
 
 
      3、apache开启rewrite重写:
打开apache的配置文件(httpd.conf),搜索# LoadModule rewrite_module modules/mod_rewrite.so 将前面的“#”去掉,这样就可以直接在httpd.conf中写rewrite规则了!

如果想在.htaccess文件中重写规则,可以 在httpd.conf文件中搜索AllowOverride None 修改为AllowOverride All  这样就可以在网站根目录建立.htaccess文件写rewrite规则了!

 

      4、mod_rewrite 规则的使用:

RewriteEngine on   //启动rewrite引擎
RewriteCond %{HTTP_HOST} !^www.test.com  [NC]       //如果访问网址不是www.test.com   后面的[NC]  N重新从第一条规则开始运行重写过程 C 与下一条相关联
RewriteRule   ^/(.*) http://www.test.com/ [L]         //跳转到这个地址

 

RewriteEngine on       
RewriteRule ^/article_([0-9]*).html$ /article.php?id=$1      //将伪静态 地址/article_XX.html 转换为文件加参数的格式
RewriteRule ^/article_([0-9]*)/$ /article.php?id=$1 [R]       //将伪静态 地址/article_XX/ 转换为文件加参数的格式

 

      5、mod_rewrite 规则修正符  修正符 即 Rewrite 语句后面 “[]” 里面的内容

1) R 强制外部重定向
2) F 禁用URL,返回403HTTP状态码。
3) G 强制URL为GONE,返回410HTTP状态码。
4) P 强制使用代理转发。
5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。
6) N 重新从第一条规则开始运行重写过程。
7) C 与下一条规则关联
如果规则匹配则正常处理,以下修正符无效
8) T=MIME-type(force MIME type) 强制MIME类型
9) NS  只用于不是内部子请求
10) NC 不区分大小写
11) QSA 追加请求字符串
12) NE 不在输出转义特殊字符   \%3d$1  等价于 =$1

 

求不拍砖~~~~~!

 

php伪静态配置方法

伪静态的目的是将PHP动态页面转变成html后缀的静态页面,事实上在服务器资源加载过程中,仍然是动态页面,只是为了让页面更加友好。具体伪静态的意义,大家可以再百度百科中查找,这里就不多赘述。百度百科地...
  • Xiaozhuyanglyy
  • Xiaozhuyanglyy
  • 2015年04月18日 13:52
  • 4186

apache开启伪静态的方法 php篇

打开apache的配置文件httpd.conf 找到 #LoadModule rewrite_module modules/mod_rewrite.so把前面#去掉。没有则添加,但必选独占一行,使a...
  • qq_16241043
  • qq_16241043
  • 2017年01月07日 17:22
  • 3335

PHPCMS伪静态时rewrite匹配参数超过10个的处理方法 分类信息伪静态

我们知道,在伪静态中 rewrite 只能定义到$9的,超过了便无效了,而实际使用中却有需要9个以上参数的时候,那么怎么来解决呢?详见下文分解。 RewriteRule反向引用 ,引用方法是:$N...
  • vailook
  • vailook
  • 2016年07月13日 18:13
  • 1483

Apache开启伪静态示例

Apache开启伪静态示例   环境: 系统 Windows Apache 2.2 加载Rewrite模块: 在conf目录下httpd.conf中找到 LoadModule rewri...
  • wepe12
  • wepe12
  • 2016年09月21日 11:44
  • 7016

apache服务器配置伪静态

伪静态的实现: (1)apache的rewrite机制 (2)PHP的正则表达式 练习一下apache + php + mysql 的搭建 面试的时候: 机试: 作为一个合格的ph...
  • Jye13
  • Jye13
  • 2013年06月08日 19:33
  • 964

如何让apache支持伪静态

因为采用了伪静态技术 这些都是apache伪静态没开启,没支持网站下.htaccess文件原因造成的。 因为采用了伪静态技术,所以web服务器必须开启伪静态  打开apache的配置文件ht...
  • lhzjj
  • lhzjj
  • 2014年06月11日 13:51
  • 9586

laravel .htaccess问题

最近在使用laravel框架开发软件,laravel的路由格式一般是.*/value和另一种格式.*?key=value规则不一样。这就导致前台和后台地址不一致。 为了解决这个问题,先后查看了无数文...
  • a1213239029
  • a1213239029
  • 2016年07月30日 17:35
  • 2231

Nginx apache纯静态伪静态原理与实现方案

参考文档 防盗链 http://blog.csdn.net/pestd/article/details/6554410 ob缓冲机制深入理解 http://www.jb51.net/artic...
  • tiedanzi
  • tiedanzi
  • 2016年11月04日 15:52
  • 2153

Linux 下Apache开启伪静态的配置

打开Apache的配置文件
  • css_good
  • css_good
  • 2014年08月28日 11:20
  • 3881

php 伪静态(url rewrite)apache配置!

http://blog.csdn.net/su_ocean16/article/details/7014609 mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。下...
  • liumf2005
  • liumf2005
  • 2015年04月23日 17:49
  • 1730
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php 之apache rewrite伪静态的简单配置和使用
举报原因:
原因补充:

(最多只允许输入30个字)