Apache的ReWrite的应用
2008-10-23 00:00:00 来源:WEB开发网如果希望保持请求之间的状态信息,但又不希望使用CGI来包装所有页面,而只通过分离URL中的有用信息来编码。
方案:
可以用一个规则集来分离出状态信息,并设置环境变量以备此后用于XSSI或CGI。如此,一个/foo/S=java/bar/的URL会被解析为/foo/bar/,而环境变量STATUS则被设置为"java"。
代码:
RewriteEngine on
RewriteRule ^(.*)/S=([^/]+)/(.*) $1/$3 [E=STATUS:$2]
虚拟用户主机
说明:
如果需要为用户username支持一个www.username.host.domain.com的主页?..锹嫉姆椒ㄊ迪帧?/a>
方案:
对HTTP/1.0的请求,这是无法实现的;但是对HTTP/1.1的在HTTP头中包含有主机名的请求,可以用以下规则集来内部地重写http://www.username.host.com/anypat...rname/anypath:
代码:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.[^.]+.host.com$
RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
RewriteRule ^www.([^.]+).host.com(.*) /home/$1$2
为外来访问者重定向宿主目录
说明:
对不是来自本地域ourdomain.com的外来访问者的请求,重定向其宿主目录URL到另一个网站服务器www.somewhere.com,有时这种做法也会...骰纳舷挛闹小?/a>
方案:
只须一个重写条件:
代码:
RewriteEngine on
RewriteCond %{REMOTE_HOST} !^.+.ourdomain.com$
RewriteRule ^(/~.+) http://www.somewhere.com/$1 [R,L]
重定向失败的URL到其他网站服务器
说明:
如何重写URL以重定向对网站服务器A的失败请求到服务器B,是一个常见的问题。一般,可以用Perl写的CGI脚本通过ErrorDocument来解决,此外,还有mod_rewrite方案。但是须注意,这种方法的执行效率不如用ErrorDocument的CGI脚本!
- ››应用程序的配置管理Poco
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››Apache2.2与Tomcat6整合及虚拟主机配置
- ››Apache+php+mysql在windows下的安装与配置图解
- ››应用WebSphere MQ V6 来构建企业信息总线的行业示...
- ››应用 Python 解决一些实际问题
- ››Apache+Subversion完美结合,CentOS下实现版本控制...
- ››应用JScript和XML自定义无刷新多级联动菜单
- ››Apache HTTPServer2.2.16 发布
- ››Apache Tomcat 6.0.29 (稳定版)
- ››应用:C/C++获取本机IP地址
更多精彩
赞助商链接