歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Apache的魔術(重寫規則)徹底拋棄IIS

  (1)代理(Proxy):  不知道各位大俠有沒有注意到Apache的代理功能。由於原來我使用了IIS支持Asp.Net,但是現在放棄了IIS,就出現了一個尖銳的問題:原來的ASP.NET的程序如何處理?讓Apache支持ASP.NET顯然是不現實的,至少目前還沒有一個完整的解決方案(MONO)現在還只是一個實驗性的東西,況且現在他還是一個Linux下的東西。所以我想到了Apache的代理功能。通過Apache的代理訪問IIS,就好像是Apache支持了ASP.NET了。  在你的Apache的Httpd.conf中添加以下內容就可以了,其中端口88是你的IIS使用的端口。  ProxyPass /home/ http://127.0.0.1:88/  ProxyPassReverse /home/ http://127.0.0.1:88/  RewriteRule ^/home$ /home/ [R]  這樣通過 http://localhost/home/就可以訪問到你的IIS了,是不是變相實現了Apache支持Asp/Asp.net  事實上你還可以通過這種方法作一個網站的假鏡像,讓浏覽者以為你做了一個其它網站的鏡像:  ProxyPass /home/ http://www.sina.com.cn/  ProxyPassReverse /home/ http://www.sina.com.cn/  RewriteRule ^/home$ /home/ [R]  這次再訪問http://localhost/home/是不是已經是www.sina.com.cn的首頁了?  是不是很神奇?    (2)重寫:   經常看到一些網站上的URL都是這樣的http://www.ibeyond.org/box/Computer/2003-8/2003-8-13-1191.Html,你是不是認為這個頁面真的是靜態的?錯了,你的眼睛欺騙了你的頭腦,這樣的url指向的也可能是動態的頁面,這就是Apache的另一個魔術:重寫。(這一部分需要一些正則表達式的知識)  在我的Httpd.conf有這樣一句,就實現了動態URL重寫成靜態URL的功能。  RewriteRule /box/([^/]*)?/([^/]*)/([^/]*).html /box/view.do?ID=/$1/$2/$3 [P]  很簡單,按照從左到右有3個"([^/]*)?",意思是匹配任意長度的任意字符,在後邊這三個就是作為了動態URL的參數傳遞過來,取得相應的頁面返回給浏覽者 [P]是保持原來的靜態url不變,還有其他的參數大家可以參考Apache的用戶手冊。這樣做的好處就是很容易被搜索引擎收集,因為搜索引擎默認對html的抓取是比動態URL的優先級高的,所以就很容易被搜索引擎檢索。




Copyright © Linux教程網 All Rights Reserved