jeffy

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            70 Posts :: 1 Stories :: 14 Comments :: 0 Trackbacks

          Apache與Tomcat的整合,以及Rewrite的使用  http://blog.niwota.com/a/163891.htm

          1.  支持二級動態(tài)域名   
             a.首先需要域名提供商支持 泛域名解析。
             b, 在Apache中做如下重寫(只寫Rewrite部分了):
          再舉一個(gè)可能更常見的實(shí)例,假設(shè)一個(gè)博客系統(tǒng),要求把
          http://xxx.eponet.cn 隱式的重寫成 http://www.eponet.cn/member?id=xxx
          RewriteCond %{HTTP_HOST} ^[a-z0-9\-]+\.iecn\.cn$
          RewriteRule ^/?$ /%{HTTP_HOST}
          RewriteRule ^/([a-z0-9\-]+)\.iecn\.cn/?$ /blog.php?u=$1 [L] 

           # 下面三行實(shí)現(xiàn)動態(tài)解析
          RewriteCond %{HTTP_HOST} ^[a-z0-9\-]+\.iecn\.cn$
          RewriteRule ^/(.*)$ /%{SERVER_NAME}/$1 ##注##
          RewriteRule ^/([a-z0-9\-]+)\.iecn\.cn/(.*)$ /YourWwwRoot/$1/$2 [L]

          Apache下用rewrite實(shí)現(xiàn)動態(tài)二級域名解析  http://www.360doc.com/showWeb/0/0/263162.aspx 
          Tomcat二級域名實(shí)現(xiàn)  http://bbs2.chinaunix.net/archiver/?tid-929265.html

          二級域名地址欄顯示問題:http://my.iecn.net/bbs/view/105627.html
          級域名問題,急 2006-10-03 16:50:15
          RewriteCond Host: (?!/.|www|bbs)(.*).b2b.test.com
          RewriteRule (.*) http://b2b.test.com/company/$1$2 [I,R]
          我想讓地址欄顯示為 xxx.b2b.test.com,而不是http://b2b.test.com/company/xxx,該怎樣寫呀?
          在下先謝謝了 

          有兩點(diǎn):
          首先,RewriteRule的“R”標(biāo)識符的意思就是顯式的重定向URL,就是說對瀏覽器來講是一次重新的請求,這

          樣顯然地址欄里顯示的是新的址址;
          其次,在RewriteRule中,一旦域名發(fā)生了變化,即便沒有用“R”標(biāo)識符,也會顯式的重定向URL。
          最后還有一點(diǎn),你的寫法本來就是錯(cuò)誤的,$1、$2,匹配的是RewriteRule里的匹配,而不是RewriteCond

          里的。

          你的這種情況應(yīng)該寫成:
          RewriteCond %{HTTP_HOST} ^([a-z0-9\-]+)\.b2b\.test\.com$
          RewriteCond %{HTTP_HOST} !^(www|bbs)\.b2b\.test\.com$
          RewriteRule (.*) /%{HTTP_HOST}/$2
          RewriteRule /([a-z0-9\-]+)\.b2b\.test\.com/(.*)$ /company/$1/$2 [L]

          以上就是分兩步,把域名中你需要的一個(gè)名字提取出來,這種情況只能這樣寫,同時(shí)如果想實(shí)現(xiàn)你所說的

          地址欄上看起來沒變,在重寫中不能出現(xiàn)http,這樣就要求你所有轉(zhuǎn)向的域名都要解析到這個(gè)服務(wù)器下。

          如果你用的是apache的NameVirtualHost,你可以把這一組放到第一組,這樣當(dāng)沒有域名匹配時(shí),默認(rèn)就是

          第一組。如果做不到這一點(diǎn),就意味著你要在ServerAlias放所有用到的域名了。


          謝謝這位高手,小弟愚昧
          RewriteRule (.*) /%{HTTP_HOST}/$2
          這句甚末意思呀?$2表示的是甚末?

          RewriteRule /([a-z0-9\-]+)\.b2b\.test\.com/(.*)$ /company/$1/$2 [L]
          指定到那個(gè)目錄了?

          我打算實(shí)現(xiàn)的是把bbbbbb.test.com ,指定到/company/bbbbbb下,該怎樣實(shí)現(xiàn)? 
              

          寫錯(cuò)了。
          RewriteRule (.*) /%{HTTP_HOST}/$2
          應(yīng)該是:
          RewriteRule (.*) /%{HTTP_HOST}/$1

          比如 http://xxx.b2b.iecn.net/abc
          重寫后就是 http://xxx.b2b.iecn.net/xxx.b2b.iecn.net/abc

          注意這只是一個(gè)過渡,目的是把域名中的xxx提出來(這才是最終目的),因?yàn)檫@個(gè)目錄顯然不存在,也只

          有這樣才能把域名中的東西提出來。


          我說一下apache的處理過程吧

          1: RewriteCond %{HTTP_HOST} ^([a-z0-9\-]+)\.b2b\.test\.com$
          2: RewriteCond %{HTTP_HOST} !^(www|bbs)\.b2b\.test\.com$
          3: RewriteRule (.*) /%{HTTP_HOST}/$1
          4: RewriteRule /([a-z0-9\-]+)\.b2b\.test\.com/(.*)$ /company/$1/$2 [L]

          假設(shè)現(xiàn)在訪問 http://xxx.b2b.test.com/abc

          apache的處理過程是:
          首先進(jìn)入3,注意rewite的過程是先看RewriteRule的匹配再去找它關(guān)面的條件,顯然.*是任何情況都適合

          的;
          匹配成功,會找它前面盡可能多的條件,在這里1和2的條件都起作用,就是說符合 *.b2b.test.com 但不

          能是 www.b2b.test.com 或 bbs.b2b.test.com;
          條件成立后,進(jìn)行替換,經(jīng)替換后變成 http://xxx.b2b.test.com/xxx.b2b.test.com/abc,注意這只是一

          個(gè)過渡!
          接下來執(zhí)行4,經(jīng)過4的替換后就變成了 http://xxx.b2b.text.com/xxx/abc

          以上這些我沒有實(shí)際去試過,不排除有個(gè)別的手誤造成的小錯(cuò)誤,你實(shí)際試一下。一個(gè)是你可以看rewrite

          日志,或者你先把4改成:
          RewriteRule /([a-z0-9\-]+)\.b2b\.test\.com/(.*)$ /company/$1/$2 [L,R]
          看看地址欄里是不是重寫成功,試好后再把R去掉


          我覺得我已經(jīng)盡可能的講清楚了。如果你還是看不懂,最好還是找apache的中文文檔(國內(nèi)網(wǎng)站有的是,

          你可以去http://man.chinaunix.net看看)好好看看Rewrite的部分吧。

          RewriteEngine On
             RewriteRule ^(/image/.*)$ $1 [L]
             RewriteRule ^(/css/.*)$ $1 [L]
             RewriteRule ^(/rte/.*)$ $1 [L]
             RewriteRule ^(/script/.*)$ $1 [L]
             RewriteRule ^(/favicon.ico)$ $1 [L]

             # Access the nbbs context directly.
             RewriteRule ^(/nbbs/.*)$ $1 [L]

             RewriteRule ^/$ /nbbs/index [PT]
             RewriteRule ^/(index)$ /nbbs/index [PT]
              RewriteRule ^/(thread|user|download|admin|threads|recommends|search|error|tag)(.*)$ /nbbs/$1$2   [PT]
              # AJAX URIs:
              RewriteRule ^/(ajax/.*)$ /nbbs/$1 [PT]
              CustomLog logs/mod_jk_log common
              JkLogLevel debug
              JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
              JkWorkersFile conf/workers.properties
              JkMountFile conf/uriworkermap.properties
           

           

          2.  把url 動態(tài)改成靜態(tài)
            用URL重寫方式 2種

          posted on 2007-05-07 00:19 Live-in Java 閱讀(2873) 評論(1)  編輯  收藏

          評論

          # re: 泛域名和URL重寫 2014-04-04 00:41 林峰
          怎樣把wei.1000.cavaye.cn,寫成wei.cavaye.cn  回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宾阳县| 安化县| 曲麻莱县| 长岭县| 黎城县| 阿克苏市| 郎溪县| 蓬溪县| 木里| 吴忠市| 翁牛特旗| 老河口市| 大关县| 全州县| 宝山区| 双牌县| 温州市| 娱乐| 安西县| 盐亭县| 峡江县| 读书| 香格里拉县| 友谊县| 普安县| 黄浦区| 南岸区| 武邑县| 夹江县| 忻州市| 仙桃市| 常熟市| 沙洋县| 盐池县| 盖州市| 灵宝市| 白玉县| 遵义县| 勐海县| 徐闻县| 桑植县|