PHP伪静态Rewrite设置之APACHE篇

一、Apache配置:
 
1、支持httpd.conf 配置
2、支持目录 .htaccess配置(一种"分布式配置"文件针对虚拟空间,空间商不让修改Apache配置文件)
 
启用Rewrite(httpd.conf)
(有时候Options Indexes FollowSymLinks会出问题,只需要配置Options all即可)

LoadModule rewrite_module modules/mod_rewrite.so

启用.htaccess
AllowOverride None    修改为:AllowOverride All
 
二、mod_rewrite 规则:
例如:

RewriteEngine on              ->启动rewrite引擎

RewriteRule ^/test([0-9]*).html$ /test.php?id=$1    ->指访问test加任意字段.html都能跳转到test.php    正则匹配的字段存放在虚拟内存匹配$1

三、mod_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
 
 
例如:

RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]

简单小范例:

RewriteEngine on
RewriteRule ^/in(.*).html$ /index.php
(0)

相关推荐

  • php 伪静态之IIS篇

    有的win主机IIS不支持 .htaccess 文件, 我在这里指的不是本地 在本地的话用apmserv服务器可以用.htaccess 文件,用apmserv服务器环境配置伪静态可以看 php 伪静态 (url rewrite mod_rewrite 重写) 这篇文章,讲的很详细. 这里我们主要讲解httpd.ini 废话不说直接看效果~ 例: www.jb51.net/index.php我们想让他用 www.jb51.net/index.html 来直接访问www.jb51.net/newxx

  • thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)

    复制代码 代码如下: <?php //thinkphp 路由定义规则  $route = array(  'news/:action/:year\d/:month/:day'=>'news/read?year=:2&month=:3&day=:4',    'news/:action^delete|update|insert/:year\d/:month/:day'=>array(                'news/read?extra=:2&status

  • PHP伪静态页面函数附使用方法

    function MakeUrl($arr){            foreach($arr as $key=>$value){                    $url[]=$key."_".$value;                    }            $tmpurl=implode("_",$url);            return $tmpurl.".htm";            }  functi

  • PHP 伪静态隐藏传递参数名的四种方法

    伪静态方法一: 复制代码 代码如下: <?php //伪静态方法一 // localhost/php100/test.php?id|1@action|2 $Php2Html_FileUrl = $_SERVER["REQUEST_URI"]; echo $Php2Html_FileUrl."<br>"; // /php100/test.php?id|1@action|2 $Php2Html_UrlString = str_replace("

  • PHP实现伪静态方法汇总

    PHP伪静态的使用主要是为了隐藏传递的参数名,下面给大家介绍php实现伪静态的方法,具体详情请看下文. 说起伪静态的实现方案,你是不是很爽快的回答"简单,配置下apache的重写规则就行了嘛" 但是你有没有发现这种情况,你最近弄了很多新功能,每天上几个新功能,每天都有好多伪静态配置,才开始两天运维同学还乐意配合,过两天运维同学就要骂了.你麻痹,脑残为什么不一次搞完,天天麻烦我.但是了,你要上线啊,不得不苦逼的求运维同学了,然后说出一句程序猿界最不要脸的话"这次最后一次改动了&

  • php伪静态之APACHE篇

    1.检测Apache是否支持mod_rewrite通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到"Loaded Modules",其中列出了所有apache2handler已经开启的模块,如果里面包括"mod_rewrite",则已经支持,不再需要继续设置. 如果没有开启"mod_rewrite",则打开目录 您的apache安装目录"/apache/conf/" 下的 httpd.conf 文件,

  • 基于php伪静态的实现详细介绍

    1.根据$_SERVER['PATH_INFO']来操作实现.   举个列子比如你的网站的地址是 http://127.0.0.1/show_new.php/look-id-1.shtml你echo $_SERVER['PATH_INFO'] 出来的结果就会是 /look-id-1.shtml 看到这个我想大家可能已经明白了.完整的demoindex.php 复制代码 代码如下: index.php $conn=mysql_connect("localhost","root&

  • PHP 伪静态技术原理以及突破原理实现介绍

    先说实现方法: inj.php: 复制代码 代码如下: <?php set_time_limit(10); $id=$_GET["id"]; $id=str_replace(" ","%20",$id); $id=str_replace("=","%3D",$id); $url="http://www.xxx.com/index.php/library/more/id/$id.html&qu

  • Linux中为php配置伪静态

    mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面.下面我详细说说它的使用方法 1.检测Apache是否支持mod_rewrite 通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到"Loaded Modules",其中列出了所有apache2handler已经开启的模块,如果里面包括"mod_rewrite",则已经支持,不再需要继续设置. 如果没有开启"mod_rewrite",则打开目录

  • 不用mod_rewrite直接用php实现伪静态化页面代码

    在你的程序初始化时使用如下代码:  复制代码 代码如下: <?php $Php2Html_FileUrl = $_SERVER["REQUEST_URI"]; $Php2Html_UrlString = str_replace("/", "", strrchr($Php2Html_FileUrl, "/")); $Php2Html_UrlQueryStrList = explode("@", $Php

  • PHP伪静态写法附代码

    比如这个网页 http://www.jb51.net/soft.php/1,100,8630.html 其实处理的脚本是soft.php 参数为1,100,8630 相当于soft.php?a=1&b=1=100&c=8630 只不过这样的URL太难记.搜索引擎也不喜欢. 真静态只是完全生成了HTML. 客户端访问的时候直接输出.不用脚本解释.在流量非常大的时候(比如每天有上百万的访问量的时候)会起到很好的效果.也就是说服务器端实实在在的存在这个HTML页面. 当然在你网站的流量没有那么大

随机推荐