apache配置mod_rewrite url重写相关
2014-03-15 17:43
176 查看
Apache模块 mod_rewrite
说明 | 一个基于一定规则的实时重写URL请求的引擎 |
---|---|
状态 | 扩展(E) |
模块名 | rewrite_module |
源文件 | mod_rewrite.c |
兼容性 | 仅在 Apache 1.3 及以后的版本中可用 |
概述
此模块提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。此模块可以操作URL的所有部分(包括路径信息部分),在服务器级的(
httpd.conf)和目录级的(
.htaccess)配置都有效,还可以生成最终请求字符串。此重写操作的结果可以是内部子处理,也可以是外部请求的转向,甚至还可以是内部代理处理。
但是,所有这些功能和灵活性带来一个问题,那就是复杂性,因此,不要指望一天之内就能看懂整个模块
ReWriteBase
说明 | 设置目录级重写的基准URL |
---|---|
语法 | RewriteBase URL-path |
默认值 | 参见使用方法 |
作用域 | directory, .htaccess |
覆盖项 | FileInfo |
状态 | 扩展(E) |
模块 | mod_rewrite |
# /abc/def/.htaccess -- /abc/def 目录的配置文件 # 注意:/abc/def 是 /xyz 的物理路径(例如存在一条'Alias /xyz /abc/def'指令)。 RewriteEngine On # 让服务器知道我们使用的是 /xyz 而不是物理路径 /abc/def RewriteBase /xyz # 重写规则 RewriteRule ^oldstuff\.html$ newstuff.html
上述例子中,对
/xyz/oldstuff.html的请求被正确地重写为对物理文件
/abc/def/newstuff.html的请求。
仅供Apache Hacker们参考
以下列出了内部处理的详细步骤:请求: /xyz/oldstuff.html 内部处理过程: /xyz/oldstuff.html -> /abc/def/oldstuff.html (per-server Alias) /abc/def/oldstuff.html -> /abc/def/newstuff.html (per-dir RewriteRule) /abc/def/newstuff.html -> /xyz/newstuff.html (per-dir RewriteBase) /xyz/newstuff.html -> /abc/def/newstuff.html (per-server Alias) 结果: /abc/def/newstuff.html
虽然这个过程看来很繁复,但是由于目录级重写的到来时机已经太晚了,它不得不把这个(重写)请求重新注入到Apache核心中,所以Apache内部确实是这样处理的。但是:它的开销并不象看起来的那样大,因为重新注入完全在Apache服务器内部进行,而且这样的过程在Apache内部也为其他许多操作所使用。所以,你可以充分信任其设计和实现是正确的
相关文章推荐
- Linux上安装Apache,安装mod_jk,相关配置
- Apache配置反向代理、负载均衡和集群(mod_proxy方式)
- APMServ错误解决办法:1、Apache启动失败,请检查相关配置
- Linux-CentOS XAMPP Apache 防盗链模块mod_auth_token的安装配置
- Apache的Mod_rewrite学习 (RewriteCond重写规则的条件)
- 基于mod_proxy+Apache 2.2.16+Tomcat 7的负载均衡与集群配置
- Apache缓存策略配置——mod_expires和mod_headers
- Apache配置文件相关命令
- Windows2000+Apache2.0.47+Tomcat4.1.27+mod_jk_2.0.50+j2sdk1.4.2的整合配置方法
- Apache安装配置ModSecurity
- 给已经编译运行的Apache增加mod_proxy模块的配置方法
- apache配置相关
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置
- Ubantu系统下Apache2.4.7+mod_wsgi+Django环境配置
- Windows下配置Django 1.6+apache+mod_wsgi
- windows+apache+mod_python配置django运行环境
- Ubuntu Apache 2.4 配置-HTTPS、python mod WSGI
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载
- apache - mod_rewrite配置指令RewriteBase
- 使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置