作者 主題: 請教rewrite 寫法  (閱讀 3633 次)

0 會員 與 1 訪客 正在閱讀本文。

olderboy

  • 憂鬱的高中生
  • ***
  • 文章數: 100
    • 檢視個人資料
請教rewrite 寫法
« 於: 2008-07-24 11:14 »
想請教大家一下有關 rewrite的問題

我現在想做一個功能,當大家打 http://www.xxxx.idv.tw/aaabbb 時,就會把網頁導到後端的tomcat去抓取資料
那我的寫法如下:
引用
RewriteRule   ^/([a-z0-9]+)$               ajp://192.168.1.18:8009/m/vi.do?alias=$1  [P,L]

但這樣寫,我會發現一個問題,就是如果用戶,只要打 www.xxxx.idv.tw/xxx,xxx隨便打的話!!都會導到後端的tomcat去
且access_log裡顯示的是:
引用
http://www.xxxx.idv.tw/xxx?alias=xxx

為什麼access_log不是顯示:
引用
http://www.xxxx.idv.tw/m/vi.do?alias=xxx
呢??

有沒有可能有什麼辦法,可以讓只存在的名稱,才往tomcat去送呢??
我想了很久,似乎是沒有辦法這樣做的樣子

不知大家有沒有什麼想法呢??

Thanks

Olderboy
« 上次編輯: 2008-07-24 12:30 由 olderboy »

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5396
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
回覆: 請教rewrite 寫法
« 回覆 #1 於: 2008-07-24 11:23 »
請問你要怎麼知道那個名稱是不是存在?
如果你沒辦法判斷, 那為什麼會認為前頭的 apache 就有辦法知道?

log 上頭, 對 apache 來說, 本來就是存取到 /xxx 啊 (打錯嗎? 應該不會有 ?alias=xxx 吧), 後頭那個不是轉到另一個服務去了嗎? 又不是 apache 在提供那服務, 自然不會出現在 apache 的 log 吧.

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4052
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: 請教rewrite 寫法
« 回覆 #2 於: 2008-07-24 11:39 »
你的 .htaccess 寫在 / 還是 /m ?

如果寫在 /  ,那就把 code 貼出來,說不定是被其他條件影響
« 上次編輯: 2008-07-24 11:44 由 hoyo »
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

olderboy

  • 憂鬱的高中生
  • ***
  • 文章數: 100
    • 檢視個人資料
回覆: 請教rewrite 寫法
« 回覆 #3 於: 2008-07-24 12:29 »
請問你要怎麼知道那個名稱是不是存在?
如果你沒辦法判斷, 那為什麼會認為前頭的 apache 就有辦法知道?

log 上頭, 對 apache 來說, 本來就是存取到 /xxx 啊 (打錯嗎? 應該不會有 ?alias=xxx 吧), 後頭那個不是轉到另一個服務去了嗎? 又不是 apache 在提供那服務, 自然不會出現在 apache 的 log 吧.

就是因為無法判斷,所以,我就覺得該是做不到的。

但在 apache裡的log,真的是出現了:www.xxxx.idv.tw/xxx?alias=xxx,而不是只有  www.xxx.idv.tw/xxx
這點真的也是滿奇怪的,下面就是整個我寫的內容,也還請大家指點一下了~ Thanks

引用
RewriteCond   %{REQUEST_URI}           .do$  [OR]
RewriteCond   %{REQUEST_URI}           .jsp$ [OR]
RewriteCond   %{REQUEST_URI}           .jar$ [OR]
RewriteCond   %{REQUEST_URI}           .zip$ [OR]
RewriteCond   %{ReQUEST_URI}           .xml$ [OR]
RewriteCond   %{REQUEST_URI}           .cab$
RewriteRule   /(.*)$                       ajp://192.168.1.18:8009/$1 [P,L]
RewriteCond   %{REQUEST_FILENAME}          ab.jpg$
RewriteRule   /(.*)$                       ajp://192.168.1.18:8009/$1 [P,L]
RewriteCond   %{REQUEST_FILENAME}          Vinput.gif$
RewriteRule   /(.*)$                       ajp://192.168.1.18:8009/$1 [P,L]
RewriteRule   ^/([a-z0-9]+)$               ajp://192.168.1.18:8009/m/vi.do?alias=$1  [P,L]

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4052
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: 請教rewrite 寫法
« 回覆 #4 於: 2008-07-24 12:50 »
apache 404 設定為何?
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

olderboy

  • 憂鬱的高中生
  • ***
  • 文章數: 100
    • 檢視個人資料
回覆: 請教rewrite 寫法
« 回覆 #5 於: 2008-07-24 13:18 »
apache 404 設定為何?

下面這是我設定的其它的部份

引用
<VirtualHost "_default_:80">
ServerAlias *.stage.imiyu.com
#DirectoryIndex index.do
ErrorDocument 401 "NG"
ErrorDocument 404 /index.html
AddDefaultCharset utf-8
RewriteEngine On