WEB开发网
开发学院服务器WEB服务器Apache Apache的ReWrite的应用 阅读

Apache的ReWrite的应用

 2008-10-23 00:00:00 来源:WEB开发网   
核心提示: 如果希望保持请求之间的状态信息,但又不希望使用CGI来包装所有页面,Apache的ReWrite的应用(8),而只通过分离URL中的有用信息来编码,方案:可以用一个规则集来分离出状态信息,此外,还有mod_rewrite方案,并设置环境变量以备此后用于XSSI或CGI,如此

如果希望保持请求之间的状态信息,但又不希望使用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脚本!

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Apache ReWrite 应用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接