日韩高清在线免费不卡性生活毛片,亚洲av综合第一页,亚洲美女被操,一级无遮挡理论片

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

綠色資源網(wǎng)

技術(shù)教程
您的位置:首頁服務(wù)器類Web服務(wù)器 → Apache的ReWrite的應(yīng)用

Apache的ReWrite的應(yīng)用

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

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

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

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

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

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

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

方案:
只須重定向URL /到/e/www/即可。這個(gè)方案看起來很簡(jiǎn)單,但只是有了mod_rewrite模塊的支持,它才簡(jiǎn)單,因?yàn)閭鹘y(tǒng)的URL Aliases機(jī)制(
由mod_alias及其相關(guān)模塊提供)只是作了一個(gè)前綴匹配,DocumentRoot是一個(gè)對(duì)所有URL的前綴,因而無法實(shí)現(xiàn)這樣的重定向。而用
mod_rewrite的確很簡(jiǎn)單:

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

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

方案:
解決這個(gè)微妙問題的方案是讓服務(wù)器自動(dòng)添加后綴的斜杠。對(duì)此,必須使用一個(gè)外部的重定向,使瀏覽器正確地處理后繼的對(duì)諸如圖片的請(qǐng)
求。如果僅僅作一個(gè)內(nèi)部的重寫,可能只對(duì)目錄頁面有效,而對(duì)內(nèi)嵌有使用相對(duì)URL的圖片的頁面則無效,因?yàn)闉g覽器有請(qǐng)求內(nèi)嵌目標(biāo)的可
能。比如,如果不用外部重定向,/~quux/foo/index.html頁面中對(duì)image.gif的請(qǐng)求,其結(jié)果將是/~quux/image.gif!。

所以,應(yīng)該這樣寫:

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

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

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

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

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

代碼:
user1 server_of_user1
user2 server_of_user2
: :

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

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

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

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

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

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

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

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

代碼:
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月,我決定通過一個(gè)漂亮的Web接口公開我的收藏。“漂亮”是指提供一個(gè)接口以直接瀏覽整個(gè)目錄結(jié)構(gòu),同時(shí)不對(duì)這個(gè)結(jié)構(gòu)做任何改
變 - 甚至也不在結(jié)構(gòu)頂部放置CGI腳本。為什么呢?因?yàn)檫@個(gè)結(jié)構(gòu)還要能夠被FTP訪問,而且我不希望其中有任何Web或者CGI的成分。

方案:
這個(gè)方案分為兩個(gè)部分:第一個(gè)部分,是用于在空閑時(shí)間建立所有目錄頁面的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

關(guān)鍵詞:apache,web服務(wù)器

閱讀本文后您有什么感想? 已有 人給出評(píng)價(jià)!

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