apache伪静规则及常见规则用法实例

    

             apache   mod_rewrite模块提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。

 使用此模块的条件

1.在apache的httpd.conf里开启LoadModule rewrite_module modules/mod_rewrite.so即把前面的 ‘#’去掉

    如果有操作httpd.conf的权限可以直接在httpd.conf里配置,但多是在网站目录下.htaccess文件里配置

     如果在.htaccess里配置需开启支持.htaccess

           AllowOverride All使.htaccess文件生效

示例

<Directory>
Options indexes FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>


  第二行有indexes的话是允许列出目录文件,没有或者-indexes则表示不允许列出目录文件

 示例目录结构

re在apache根目录下


re下demo文件

<?php
echo $_GET['id'];
echo "<br/>";
echo "re下的demo<br/>";
echo "<hr/>";
echo $_SERVER['PHP_SELF'];
?>

r1,r2下demo和demo一样,只是第四行分别为"r1下demo","r2下demo"标志

error.html文件里代码也只是标志各自位置

.htaccess文件

<IfModule rewrite_module>
RewriteEngine On
RewriteBase /re/

RewriteCond  %{HTTP_HOST}  localhosT [NC]
RewriteRule      demo(\d+)\.html         demo.php?id=$1 

ErrorDocument    404   error.html
</Ifmodule>

其中RewriteBase+demo.php是真实文件存在位置,如果没设置此项则以.htaccess文件所在目录为基准

如果按以上的.htaccess

访问:http://localhost/re/demo1.html

结果:


要访问的demo1.html是以.htaccess所在目录为基准

访问个不存在的目录里的http://localhost/re/a/demo1.html

将会访问到当前RewriteBase下的error.html文件


若:



RewriteBase /re/r1




当不匹配时



   ErrorDocument    404   error.html
去找当前RewriteBase 下的error.html


RewriteCond  %{HTTP_HOST}  localhosT [NC]
这句时匹配前的判断条件
如果%{HTTP_HOST} 是localhost就进行下面的RewriteRule
[NC]表示不区分大小写
 注意localhosT,[NC]两者之间有空格
本文只是作些简单的实例演示,更多内容请查看apace手册相关内容!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值