jeffy

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            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部分了):
          再舉一個可能更常見的實例,假設一個博客系統,要求把
          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] 

           # 下面三行實現動態(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實現動態(tài)二級域名解析  http://www.360doc.com/showWeb/0/0/263162.aspx 
          Tomcat二級域名實現  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,該怎樣寫呀?
          在下先謝謝了 

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

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

          里的。

          你的這種情況應該寫成:
          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]

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

          地址欄上看起來沒變,在重寫中不能出現http,這樣就要求你所有轉向的域名都要解析到這個服務器下。

          如果你用的是apache的NameVirtualHost,你可以把這一組放到第一組,這樣當沒有域名匹配時,默認就是

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


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

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

          我打算實現的是把bbbbbb.test.com ,指定到/company/bbbbbb下,該怎樣實現? 
              

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

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

          注意這只是一個過渡,目的是把域名中的xxx提出來(這才是最終目的),因為這個目錄顯然不存在,也只

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


          我說一下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]

          假設現在訪問 http://xxx.b2b.test.com/abc

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

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

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

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

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

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


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

          你可以去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 閱讀(2872) 評論(1)  編輯  收藏

          評論

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


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


          網站導航:
           
          主站蜘蛛池模板: 曲阜市| 高要市| 富裕县| 五家渠市| 长顺县| 扶绥县| 龙游县| 民丰县| 五指山市| 永泰县| 涞水县| 淮北市| 罗平县| 湟源县| 南投县| 山丹县| 正镶白旗| 济阳县| 章丘市| 灌南县| 万源市| 宣恩县| 武穴市| 泰安市| 武乡县| 曲松县| 宝丰县| 高清| 丘北县| 丰县| 甘泉县| 岳阳市| 景谷| 苍山县| 吴旗县| 双江| 扎鲁特旗| 迭部县| 南涧| 大兴区| 霍林郭勒市|