找回密码
 注册
搜索
查看: 5472|回复: 0

[转]Apache的魔术

[复制链接]
发表于 2004-5-22 22:17:30 | 显示全部楼层 |阅读模式
前几日受到“冲击波”影响,我的服务器受到了很大的影响,一起之下彻底放弃了.net平台,全面转向java平台,只不过现在的OS还是微软的,不过说不定将来的某一天我就彻底放弃微软平台,转向Linux平台。所以放弃了IIS,全面转向Apache。以下是我最近使用Apache的一点体会。& u* R- B( r  ^8 O# D; o# |
(1)代理(Proxy):
1 P: Y3 V/ E1 |2 m不知道各位大侠有没有注意到Apache的代理功能。由于原来我使用了IIS支持ASP.NET,但是现在放弃了IIS,就出现了一个尖锐的问题:原来的ASP.NET的程序如何处理?让Apache支持ASP.NET显然是不现实的,至少目前还没有一个完整的解决方案(MONO)现在还只是一个实验性的东西,况且现在他还是一个linux下的东西。所以我想到了Apache的代理功能。通过Apache的代理访问IIS,就好像是Apache支持了ASP.NET了。( B) j. H3 S3 }5 y  F
在你的Apache的Httpd.conf中添加以下内容就可以了,其中端口88是你的IIS使用的端口。
8 I& w; B, T& p. |4 w1 I& }  W) BProxyPass /home/ http://127.0.0.1:88/5 o! m# J9 x6 ~6 u/ i8 d
ProxyPassReverse /home/ http://127.0.0.1:88/* k; k) U0 G" y: h( c2 R# _
RewriteRule ^/home$ /home/ [R]
# k! z+ R6 y! j这样通过 http://localhost/home/就可以访问到你的IIS了,是不是变相实现了Apache支持Asp/Asp.net
# j7 E. _  o3 @$ A; m7 P+ H事实上你还可以通过这种方法作一个网站的假镜像,让浏览者以为你做了一个其它网站的镜像:
+ S/ J3 n: _, u" ]1 B7 YProxyPass /home/ http://www.sina.com.cn/
" g$ Y* a0 m* C. ?4 t/ CProxyPassReverse /home/ http://www.sina.com.cn/
+ V8 s" L. w/ W5 r8 `! s8 E! \RewriteRule ^/home$ /home/ [R]. m' O9 k3 J9 Q7 i, M
这次再访问http://localhost/home/是不是已经是www.sina.com.cn的首页了?  h5 p+ v* [0 L& e5 ]9 m
是不是很神奇?8 ?7 O0 z3 h6 Q$ Z- S- r1 h$ c* s. }, y
(2)重写: , e6 ?/ V9 c* Q" r1 M
经常看到一些网站上的URL都是这样的http://www.ibeyond.org/box/Computer/2003-8/2003-8-13-1191.html,你是不是认为这个页面真的是静态的?错了,你的眼睛欺骗了你的头脑,这样的url指向的也可能是动态的页面,这就是Apache的另一个魔术:重写。(这一部分需要一些正则表达式的知识): B9 L, C. a/ }; @+ P1 E' Q1 @
在我的Httpd.conf有这样一句,就实现了动态URL重写成静态URL的功能。
9 x% {. L: |4 N6 D8 H2 H3 ^: ~RewriteRule /box/([^/]*)?/([^/]*)/([^/]*).html /box/view.do?ID=/$1/$2/$3 [P], E  W5 c! g0 v. U. O4 [
很简单,按照从左到右有3个"([^/]*)?",意思是匹配任意长度的任意字符,在后边这三个就是作为了动态URL的参数传递过来,取得相应的页面返回给浏览者 [P]是保持原来的静态url不变,还有其他的参数大家可以参考Apache的用户手册。这样做的好处就是很容易被搜索引擎收集,因为搜索引擎默认对html的抓取是比动态URL的优先级高的,所以就很容易被搜索引擎检索。
) Y; Y: U6 b6 k$ ^* p8 r$ g以上只是Apache魔术中的很少一部分,也许我会在以后慢慢提供(如果我会Apache有更深的认识的话)。
5 ~$ U3 h9 E- H' P以上的也可以在Apache的手册中取得相关信息,当前网络上已经有了Apache2.0的中文版的手册,大家可以查阅。. @3 k- u; u/ ^5 u4 N* A" v2 [9 {2 U
0 z: i& l1 v: ~* F$ R" W
版权归iBeyond(http://www.ibeyond.org)所有,转载请著名出处并保留版权信息.可以通过email和我联系(csdn@ibeyond.org)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2026-6-18 08:11 , Processed in 0.017819 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表