亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Apache > 正文

Apache重寫規則的常見應用及實例說明

2024-08-27 18:29:00
字體:
來源:轉載
供稿:網友

本文旨在提供如何用apache重寫規則來解決一些常見的url重寫方法的問題,通過常見的實例給用戶一些使用重寫規則的基本方法和線索。

一、為什么需要用重寫規則

網站的生命在于不斷地進行更新和維護,根據業務發展的需求轉移服務器進行維護、重新組織目錄結構、變換url甚至改變到新的域名等情況是經常發生的。為了讓客戶不會因此受到任何影響,最好的方法就是使用apache rewrite rule(重寫規則)。

二、重寫規則的作用范圍

1.使用在apache主配置文件httpd.conf中。

2.使用在httpd.conf里定義的虛擬主機配置中。

3.使用在基本目錄的跨越配置文件.htaccess中。

三、重寫規則的應用條件

當用戶的web請求最終被導向到某臺web服務器的apache守護進程,apache根據配置文件判斷該請求是主配置還是虛擬主機,再根據用戶在瀏覽器中請求的url來匹配重寫規則,并且根據實際的請求路徑匹配.htaccess中的重寫規則,最后把請求的內容傳回給用戶。該響應可能有2種。

1.將請求內容外部重定向(redirect)到另一個url

讓瀏覽器再次以新的url發出請求(r=301或者r=302,臨時的或是永久的重定向)。

例如,一個網站有正規的url和別名url,對別名url進行重定向到正規url,或者網站改換成了新的域名,則把舊的域名重定向到新的域名。

2.由apache內部子請求代理產生新的內容送回給客戶[p,l]

這是apache內部根據重寫后的url,通過代理模塊請求內容并將最終內容送回給客戶,客戶端瀏覽器不必再次請求,瀏覽器中的url不會被重寫,但實際內容由apache根據重寫規則后的url生成。

例如,在公司防火墻上運行的apache啟動這種代理重寫規則,代理對內部網段上的web服務器的請求。

四、重寫規則怎樣工作

我們假定在編譯apache時已經把mod_rewrite編譯成模塊,確信您的httpd.conf中有loadmodule rewrite_module libexec/mod_rewrite.so,并且在addmodule中有addmodule mod_rewrite.c,則可以使用重寫規則。

當外部請求到達apache,apache調用重寫規則中的定義來重寫由用戶瀏覽器指定請求的url,最后被重寫的url如果是重定向,則送交瀏覽器做再一次請求;如果是代理則把重寫后的url交給代理模塊請求最終的內容(content),最后把內容送回給瀏覽器。

五、何時使用.htaccess中的重寫規則定義

假如您對網站內容所在的服務器沒有管理員權限,或者您的網站內容放在isp的服務器上托管,無法改寫主配置文件,但是您對web站點內容所在的目錄有寫權限,則可以設置自己的.htaccess文件達到同樣的目的。但您需要確定主配置文件中對您的網站所在的目錄定義了下面的內容,否則您的.htaccess不會工作。

< directory /usr/local/apache/htdocs/www.abc.com> options indexes followsymlinks  allowoverride all  < /directory >

六、應用舉例

假定apache被編譯安裝在主機192.168.1.56的/usr/local/apache目錄下面,同時編譯了重寫和代理模塊。

1.隱藏apache下的某個目錄,使得對該目錄的任何請求都重定向到另一個文件

(1)httpd.conf的實現方法

我們將下面的部分放到/usr/local/apache/conf/httpd.conf中。

< directory "/usr/local/apache/htdocs/manual/"> options indexes followsymlinks  allowoverride all rewriteengine on rewritebase /  rewriterule ^(.*)$ index.html.en [r=301] < /directory >

注: “rewriteengine on”為重寫引擎開關,如果設為“off”,則任何重寫規則定義將不被應用,該開關的另一用處就是如果為了臨時去掉重寫規則,可以將引擎開關設為“off”再重新啟動apache即可,不必將其中的各條重寫規則注釋掉。

“rewritebase /”的作用是如果在下面的rewriterule定義中被重寫后的部分(此處為文件名index.html.en)前面沒有“/”,則表明是相對目錄,相對于這個rewritebase后面的定義也就是/usr/local/apache/htdocs/index.html.en,否則,如果此處沒有“rewritebase /”這一項,則被重寫成http://192.168.1.56/usr/local/apache/htdocs/manual/index.html.en,顯然是不正確的。

我們也可以不用“rewritebase /”,而是將其改為如下部分。

rewriteengine on rewriterule ^(.*)$ /index.html.en [r=301]

或者更改為:

rewriteengine on  rewriterule ^(.*)$ http://192.168.1.56/index.html.en [r=301]

(2).htaccess的實現方法

我們將下面的部分放到httpd.conf中。

< directory "/usr/local/apache/htdocs/manual/"> options indexes followsymlinks  allowoverride all < /directory >

然后將下面的部分放到/usr/local/apache/htdocs/manual/.htaccess中。

rewriteengine on rewritebase / rewriterule ^(.*)$ index.html.en [r=301]

注: 對文件.htaccess所做的任何改動不需要重啟動apache。

您還可以利用.htaccess方案將這個manual目錄重定向到用戶jephe自己的主目錄。

rewriteengine on  rewritebase /~jephe/ rewriterule ^(.*)$ $1 [r=301]

這樣,對manual目錄下任何文件的請求被重定向到~jephe目錄下相同文件的請求。

2.將http://www.username.domain.com對于username的主頁請求轉換為對http://www.domain.com/username的請求

對于http/1.1的請求包括一個host: http頭,我們能用下面的規則集重寫

http://www.username.domain .com/anypath到/home/username/anypath。  rewriteengine on  rewritecond %{http_host} ^www.[^.] .host.com$ rewriterule ^(. ) %{http_host}$1 [c]  rewriterule ^www.([^.] ).host.com(.*) /home/$1$2

注: “rewritecond”表明是條件重寫規則,當滿足后面定義的條件后才會應用下面的重寫規則,“rewritecond”有各種變量,請查閱相關文檔。

3.防火墻上的重寫規則代理內部網段上服務器的請求

namevirtualhost 1.2.3.4  < virtualhost 1.2.3.4:80 > servername www.domain.com  rewriteengine on  proxyrequest on rewriterule ^/(.*)$ http://192.168.1.3/$1 [p,l] < /virtualhost >

注: 當外部瀏覽器請求http://www.domain.com時,將被解析到ip地址1.2.3.4,apache交由mod_rewrite處理,轉換成http://192.168.1.3/$1后再交由代理模塊mod_proxy,得到內容后傳送回用戶的瀏覽器。

4.基本預先設定的轉換map表進行重寫rewritemap

轉換http://www.domain.com/{countrycode}/anypath到map表中規定的url,前面是虛擬主機中的定義。

rewritelog /usr/local/apache/logs/rewrite.log  rewriteloglevel 9  rewriteengine on proxyrequest on rewritemap sitemap txt:/usr/local/apache/conf/rewrite.map rewriterule ^/([^/] ) /(.*)$ http://%{remote_host}::$1 [c]  rewriterule (.*)::([a-z] )$ ${sitemap:$2|http://h.i.j.k/} [r=301,l]

文件/usr/local/apache/conf/rewrite.map的內容如下:

sg http://a.b.c.d/ sh http://e.f.g.h/

注: 當用戶請求http://www.domain.com/sg/anypath時被重寫為http://a.b.c.d/anypath。當需要調試時請用rewritelog和 rewriteloglevel 9聯合,9為最大,即得到最多的調試信息;最小為1,表示得到最少的調試信息;默認為0,表示沒有調試信息。

sitemap的語法是${sitemap: lookupkey | defaultvalue},有些書上把$寫成了%是錯誤的。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情喷水视频| 久久人人爽人人爽人人片亚洲| 国产精品福利小视频| 亚洲人线精品午夜| 亚洲国内精品视频| 在线色欧美三级视频| 欧美老女人www| 不卡伊人av在线播放| 日韩亚洲在线观看| 91高清免费在线观看| 久久精品国产一区二区三区| 色阁综合伊人av| 在线亚洲午夜片av大片| 久久综合五月天| 欧美韩日一区二区| 成人午夜在线视频一区| 国产精品久久久久久五月尺| 伊人久久男人天堂| 日韩大片免费观看视频播放| 精品欧美一区二区三区| 国产亚洲aⅴaaaaaa毛片| 亚洲第一福利网站| 亚洲人成电影在线播放| 欧美性xxxxxx| 国色天香2019中文字幕在线观看| 亚洲一区第一页| 成人黄色短视频在线观看| 国产视频精品在线| 久久精品99久久久久久久久| 7777精品视频| 国产日韩精品视频| 最近2019年中文视频免费在线观看| 国产一区二区在线播放| 久久成人这里只有精品| 久热爱精品视频线路一| 午夜精品久久久久久久99热浪潮| 九九热这里只有精品免费看| 精品国产福利视频| 久久精品亚洲精品| 日韩免费高清在线观看| 97人洗澡人人免费公开视频碰碰碰| 91wwwcom在线观看| 亚洲精品国产精品乱码不99按摩| 日本欧美黄网站| 国产香蕉精品视频一区二区三区| 国产精品美女av| 日韩电影免费观看在线观看| 92国产精品视频| 亚洲男人天堂古典| 国产精品久久久久久久久粉嫩av| 亚洲天堂av在线免费| 精品国产一区二区三区久久| 亚洲综合在线中文字幕| 欧美激情欧美激情在线五月| 国产在线视频不卡| 原创国产精品91| 欧美疯狂xxxx大交乱88av| 国产原创欧美精品| 精品毛片网大全| 国产成人一区二区三区| 日韩美女写真福利在线观看| 55夜色66夜色国产精品视频| 91亚洲永久免费精品| 日韩欧美高清在线视频| 亚洲精品按摩视频| 国产视频综合在线| 国产精品久久久久久久9999| 国产欧美一区二区白浆黑人| 性欧美xxxx视频在线观看| 亚洲影院污污.| 韩国国内大量揄拍精品视频| 精品高清一区二区三区| 91精品久久久久久久久久入口| 91日本在线观看| 日本中文字幕久久看| 国产欧美日韩中文字幕在线| 97超碰国产精品女人人人爽| 不卡在线观看电视剧完整版| 久久99国产精品久久久久久久久| 亚洲成人a**站| 在线观看亚洲区| 91精品久久久久久久久久| 亚洲另类xxxx| 久久久久久久一区二区| 神马国产精品影院av| 欧美在线视频免费观看| 国产精品国模在线| 亚洲另类图片色| 亚洲大胆美女视频| 亚洲欧美色图片| 91精品国产成人www| 深夜福利日韩在线看| 高清视频欧美一级| 久99久在线视频| 欧美亚洲成人精品| 色综合导航网站| 亚洲奶大毛多的老太婆| 91性高湖久久久久久久久_久久99| 国产成人综合亚洲| 亚洲精品免费一区二区三区| 国产丝袜精品视频| 精品亚洲一区二区三区四区五区| 日韩精品高清视频| 国内精品伊人久久| 不用播放器成人网| 日韩中文字幕视频在线| 亚洲最大福利网| 国产日韩欧美日韩大片| 亚洲美女精品成人在线视频| 精品国产乱码久久久久久婷婷| 精品久久久香蕉免费精品视频| 性金发美女69hd大尺寸| 日韩欧美精品中文字幕| 国产在线精品成人一区二区三区| 日韩av免费在线观看| 国产成人免费av| 8x拔播拔播x8国产精品| 国自产精品手机在线观看视频| 亚洲黄色av网站| 超碰精品一区二区三区乱码| 日本高清视频一区| 亚洲欧美成人在线| 日韩美女在线播放| 国产精品入口免费视| 久热精品视频在线观看一区| 欧美另类老女人| 国产成人一区二区三区电影| 成人激情电影一区二区| 成人欧美在线观看| 久久国产精品久久久久久| 国产亚洲aⅴaaaaaa毛片| 国产精品视频久久久| 一道本无吗dⅴd在线播放一区| 久久久在线视频| 亚洲成人性视频| 68精品久久久久久欧美| 亚洲国产小视频在线观看| 成人久久一区二区| 久久成人18免费网站| 另类图片亚洲另类| 久久色免费在线视频| 亚洲欧美日韩中文在线制服| 久久视频这里只有精品| 久久伊人精品视频| 日韩精品在线免费观看| 一本一本久久a久久精品综合小说| 亚洲精品suv精品一区二区| 国产成人自拍视频在线观看| 亚洲欧美国产精品久久久久久久| 亚洲第一区中文字幕| 国产97在线播放| 日本中文字幕久久看| 91在线精品播放| www.亚洲男人天堂| 久久中国妇女中文字幕| 免费成人高清视频| 亚洲人成在线电影| 国产日韩欧美在线看| 日韩av快播网址| 亚洲欧美日韩视频一区| 亚洲欧洲黄色网| 久久精品99久久久久久久久| 精品一区二区三区电影| 日韩欧美国产高清91|