博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
apache伪静态规则及常见规则用法实例
阅读量:5299 次
发布时间:2019-06-14

本文共 1410 字,大约阅读时间需要 4 分钟。

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文件生效

1 
2 Options indexes FollowSymlinks3 AllowOverride All4 Order allow,deny5 Allow from all6

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

 示例目录结构

re在apache根目录下

re下demo文件

1 
";4 echo "re下的demo
";5 echo "

";6 echo $_SERVER['PHP_SELF'];7 ?>

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

 

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

.htaccess文件

1 
2 RewriteEngine On3 RewriteBase /re/4 5 RewriteCond %{HTTP_HOST} localhosT [NC]6 RewriteRule demo(\d+)\.html demo.php?id=$1 7 8 ErrorDocument 404 error.html9

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

 如果按以上的.htaccess

访问:

结果:

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

访问个不存在的目录里的

将会访问到当前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手册相关内容!

转载于:https://www.cnblogs.com/HKUI/archive/2013/04/30/apache_peizhi.html

你可能感兴趣的文章
[BZOJ1691][Usaco2007 Dec]挑剔的美食家
查看>>
负载均衡基础知识(转)
查看>>
ABP框架系列之一:(Entity-实体)
查看>>
2014年总结
查看>>
图解分析mochiweb web server
查看>>
netstat 2
查看>>
as3.0 [Embed]标签嵌入外部资源
查看>>
Python 发 邮件
查看>>
mysql忘记密码的解决办法
查看>>
全面分析Java的垃圾回收机制2
查看>>
ssh中文乱码解决
查看>>
Day1:初识Python
查看>>
[Code Festival 2017 qual A] C: Palindromic Matrix
查看>>
[Python设计模式] 第11章 迪米特法则——最少知识原则
查看>>
社交网站怎么利用好等级制度
查看>>
修改博客园css样式
查看>>
YUI3中panel基于Visibility属性引发的一个bug
查看>>
[BZOJ3771] Triple
查看>>
封装继承多态性
查看>>
搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)...
查看>>