99久久99久久精品免观看,国产精品久久久久国产精品,国产黄色录像视频,免费的黄色毛片,国产一区精品普通话对白,色妞妞成人在线观看,最新aⅴ福利在线观看免费

綠色資源網(wǎng):您身邊最放心的安全下載站! 最新軟件|熱門排行|軟件分類|軟件專題|論壇轉帖|廠商大全

綠色資源網(wǎng)

技術教程
您的位置:首頁服務器類Web服務器 → Apache的ReWrite的應用

Apache的ReWrite的應用

我要評論 2020/04/09 23:27:59 來源:綠色資源網(wǎng) 編輯:綠色資源站 [ ] 評論:0 點擊:459次

Apache的mod_rewrite是提供了強大URL操作的殺手級的模塊,可以實現(xiàn)幾乎所有你夢想的URL操作類型,其代價是你必須接受其復雜性,因
為mod_rewrite的主要障礙就是初學者不容易理解和運用,即使是Apache專家有時也會發(fā)掘出mod_rewrite的新用途。

換句話說:對mod_rewrite,或者是打退堂鼓永不再用,或者是喜歡它并一生受用。

ReWrite可以應用在以下方面或者解決以下問題:
URL的規(guī)劃
規(guī)范的URL
說明:
在有些網(wǎng)站服務器上,一個資源會擁有多個URL,在實際應用和發(fā)布中應該被使用的是規(guī)范的URL,其他的則是簡寫或者是內部使用的。無論
用戶在請求中使用什么形式的URL,他最終看見的都應該是規(guī)范的URL。

方案:
對所有的不規(guī)范的URL執(zhí)行一個外部的HTTP重定向,以改變它在瀏覽器地址欄中的顯示及其后繼的請求。下例中的規(guī)則集用規(guī)范的/u/user替
換/~user,并修正了/u/user所遺漏的后綴的斜杠。

代碼:
RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2 [R]
RewriteRule ^/([uge])/([^/]+)$ /$1/$2/ [R]

被移動過的DocumentRoot
說明:
通常,網(wǎng)站服務器的DocumentRoot直接對應于URL"/",但是,它常常不是處于最高一級,而可能只是眾多數(shù)據(jù)池中的一個實體。比如,在
Intranet站點中,有/e/www/(WWW的主頁)、/e/sww/ (Intranet的主頁)等等,而DocumentRoot指向了/e/www/,則必須保證此數(shù)據(jù)池中的所
有內嵌的圖片和其他元素對后繼請求有效。

方案:
只須重定向URL /到/e/www/即可。這個方案看起來很簡單,但只是有了mod_rewrite模塊的支持,它才簡單,因為傳統(tǒng)的URL Aliases機制(
由mod_alias及其相關模塊提供)只是作了一個前綴匹配,DocumentRoot是一個對所有URL的前綴,因而無法實現(xiàn)這樣的重定向。而用
mod_rewrite的確很簡單:

代碼:
RewriteEngine on
RewriteRule ^/$ /e/www/ [R]

后綴斜杠的問題
說明:
每個網(wǎng)管對引用目錄后綴斜杠的問題都有一本苦經(jīng),如果遺漏了,服務器會產生一個錯誤,因為如果請求是/~quux/foo而不是/~quux/foo/
,服務器會去找一個叫foo的文件,而它是一個目錄,所以就報錯了。事實上,大多數(shù)情況下,它自己會試圖修正這個錯誤,但是有時候需
要你手工糾正,比如,在重寫了許多CGI腳本中的復雜的URL以后。

方案:
解決這個微妙問題的方案是讓服務器自動添加后綴的斜杠。對此,必須使用一個外部的重定向,使瀏覽器正確地處理后繼的對諸如圖片的請
求。如果僅僅作一個內部的重寫,可能只對目錄頁面有效,而對內嵌有使用相對URL的圖片的頁面則無效,因為瀏覽器有請求內嵌目標的可
能。比如,如果不用外部重定向,/~quux/foo/index.html頁面中對image.gif的請求,其結果將是/~quux/image.gif!。

所以,應該這樣寫:

代碼:
RewriteEngine on
RewriteBase /~quux/
RewriteRule ^foo$ foo/ [R]

又懶又瘋狂的做法是把這些寫入其宿主目錄中的頂級.htaccess中,但是須注意,如此會帶來一些處理上的開銷。

代碼:
RewriteEngine on
RewriteBase /~quux/
RewriteCond % -d
RewriteRule ^(.+[^/])$ $1/ [R]

集群網(wǎng)站的同類URL規(guī)劃
說明:
我們希望在一個Intranet集群網(wǎng)站中,對所有WWW服務器建立一個同類的一致性的URL規(guī)劃,也就是,所有的URL(對單個服務器來說,是本地
的依賴于此服務器的!)是獨立于服務器的!我們需要的是一個具有獨立于服務器的一致性規(guī)劃的WWW名稱空間,即,URL不需要包含正確的
物理的目標服務器,而由集群本身來自動定位物理的目標主機。

方案:
首先,目標服務器的信息來自(產生)于包含有用戶、組以及實體的外部地圖,其格式形如:

代碼:
user1 server_of_user1
user2 server_of_user2
: :

這些信息被存入map.xxx-to-host文件。其次,如果URL在一個服務器上無效,需要引導所有的服務器重定向URL

代碼:
/u/user/anypath
/g/group/anypath
/e/entity/anypath

RewriteRule ^/([uge])/([^/]+)/?$ /$1/$2/.www/
RewriteRule ^/([uge])/([^/]+)/([^.]+.+) /$1/$2/.www/$3\

移動宿主目錄到不同的網(wǎng)站服務器
說明:
通常,許多網(wǎng)管在建立一個新的網(wǎng)站服務器時,都會有這樣的要求:重定向一個網(wǎng)站服務器上的所有宿主目錄到另一個網(wǎng)站服務器。

結構化的宿主目錄
說明:
一些擁有幾千個用戶的網(wǎng)站通常都使用結構化的宿主目錄規(guī)劃,即,每個宿主目錄位于一個帶有特定前綴比如其用戶名的第一個字符的子目
錄下。那么,/~foo/anypath代表/home/f/foo/.www/anypath,而/~bar/anypath代表/home/b/bar/.www/anypath。

方案:
可以使用下列規(guī)則集來擴展~以達到上述目的。

代碼:
RewriteEngine on
RewriteRule ^/~(([a-z])[a-z0-9]+)(.*) /home/$2/$1/.www$3

文件系統(tǒng)的重組
說明:
這是一個不加雕琢的例子:一個大量使用針對目錄的規(guī)則集以實現(xiàn)平滑觀感,而從來不用調整數(shù)據(jù)結構的殺手級的應用。背景:net.sw從
1992年開始,存放了我收集的免費的有效的Unix軟件包。它是我的愛好也是我的工作,因為在學習計算機科學的同時,業(yè)余時間還做了多年
的系統(tǒng)和網(wǎng)絡的管理員。每周我都需要整理軟件,因而建立了一個層次很深的目錄結構來存放各種軟件包:

代碼:
drwxrwxr-x 2 netsw users 512 Aug 3 18:39 Audio/
drwxrwxr-x 2 netsw users 512 Jul 9 14:37 Benchmark/
drwxrwxr-x 12 netsw users 512 Jul 9 00:34 Crypto/
drwxrwxr-x 5 netsw users 512 Jul 9 00:41 Database/
drwxrwxr-x 4 netsw users 512 Jul 30 19:25 Dicts/
drwxrwxr-x 10 netsw users 512 Jul 9 01:54 Graphic/
drwxrwxr-x 5 netsw users 512 Jul 9 01:58 Hackers/
drwxrwxr-x 8 netsw users 512 Jul 9 03:19 InfoSys/
drwxrwxr-x 3 netsw users 512 Jul 9 03:21 Math/
drwxrwxr-x 3 netsw users 512 Jul 9 03:24 Misc/
drwxrwxr-x 9 netsw users 512 Aug 1 16:33 Network/
drwxrwxr-x 2 netsw users 512 Jul 9 05:53 Office/
drwxrwxr-x 7 netsw users 512 Jul 9 09:24 SoftEng/
drwxrwxr-x 7 netsw users 512 Jul 9 12:17 System/
drwxrwxr-x 12 netsw users 512 Aug 3 20:15 Typesetting/
drwxrwxr-x 10 netsw users 512 Jul 9 14:08 X11/

1996年7月,我決定通過一個漂亮的Web接口公開我的收藏。“漂亮”是指提供一個接口以直接瀏覽整個目錄結構,同時不對這個結構做任何改
變 - 甚至也不在結構頂部放置CGI腳本。為什么呢?因為這個結構還要能夠被FTP訪問,而且我不希望其中有任何Web或者CGI的成分。

方案:
這個方案分為兩個部分:第一個部分,是用于在空閑時間建立所有目錄頁面的CGI腳本集。我把它們放在/e/netsw/.www/,如下:

代碼:
-rw-r--r-- 1 netsw users 1318 Aug 1 18:10 .wwwacl
drwxr-xr-x 18 netsw users 512 Aug 5 15:51 DATA/
-rw-rw-rw- 1 netsw users

關鍵詞:apache,web服務器

閱讀本文后您有什么感想? 已有 人給出評價!

  • 101 歡迎喜歡
  • 2 白癡
  • 2 拜托
  • 104 哇
  • 14 加油
  • 2 鄙視