PHP伪静态Rewrite设置之APACHE篇
一、Apache配置:
1、支持httpd.conf配置
2、支持目录.htaccess配置(一种"分布式配置"文件针对虚拟空间,空间商不让修改Apache配置文件)
启用Rewrite(httpd.conf)
(有时候OptionsIndexesFollowSymLinks会出问题,只需要配置Optionsall即可)
LoadModulerewrite_modulemodules/mod_rewrite.so
启用.htaccess
AllowOverrideNone 修改为:AllowOverrideAll
二、mod_rewrite规则:
例如:
RewriteEngineon->启动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(forceMIMEtype)强制MIME类型
9)NS 只用于不是内部子请求
10)NC不区分大小写
11)QSA追加请求字符串
12)NE不在输出转义特殊字符 \%3d$1 等价于=$1
例如:
RewriteRule^/new([0-9]*)/$/new.php?id=$1[R]
简单小范例:
RewriteEngineon RewriteRule^/in(.*).html$/index.php