歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> Apache的魔術(重寫規則)徹底拋棄IIS

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

日期:2017/3/6 15:50:10   编辑:關於Unix
(1)代理(Proxy): 不知道各位大俠有沒有注意到Apache的代理功能。由於原來我使用了IIS支持ASP.NET,但是現在放棄了IIS,就出現了一個尖銳的問題:原來的ASP.NET的程序如何處理?讓Apache支持ASP.NET顯然是不現實的,至少目前還沒有一個完整的 解決方案
  (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