台灣最大程式設計社群網站
線上人數
1955
 
會員總數:246276
討論主題:189811
歡迎您免費加入會員
討論區列表 >> PHP >> url rewrite 規則
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
url rewrite 規則
價值 : 50 QP  點閱數:1030 回應數:1
樓主

工讀生
初學者
598 10
1110 116
發送站內信

請教各位大大
我想設定apache的url rewrite
以達到dns後第一個資料夾名稱,rewrite成subweb參數

http://www.dns.com.tw/mary/ => http://www.dns.com.tw/test.php?subweb=mary
http://www.dns.com.tw/steven/ => http://www.dns.com.tw/test.php?subweb=steven

http://www.dns.com.tw/mary/test.php => http://www.dns.com.tw/test.php?subweb=mary
http://www.dns.com.tw/steven/test.php => http://www.dns.com.tw/test.php?subweb=steven

http://www.dns.com.tw/mary/facebook/test2.php => http://www.dns.com.tw/facebook/test2.php?subweb=mary
http://www.dns.com.tw/mary/google/test2.php => http://www.dns.com.tw/google/test2.php?subweb=mary
http://www.dns.com.tw/steven/facebook/test2.php => http://www.dns.com.tw/facebook/test2.php?subweb=steven
http://www.dns.com.tw/steven/google/test2.php => http://www.dns.com.tw/google/test2.php?subweb=steven

目前試到每一頁,寫一行Rule可以達到目標
RewriteRule ^([a-z0-9\-]+)/facebook/test2.php$ facebook/test2.php?subweb=$1 [QSA]
RewriteRule ^([a-z0-9\-]+)/google/test2.php$ google/test2.php?subweb=$1 [QSA]
RewriteRule ^([a-z0-9\-]+)/test.php$ test.php?subweb=$1 [QSA]
RewriteRule ^([a-z0-9\-]+)/?$ test.php?subweb=$1 [QSA,L]

也一直想試能不能
http://www.dns.com.tw/1號變數/2號變數 => http://www.dns.com.tw/2號變數?subweb=1號變數
用/區隔 把1號變數的/後所有字元設定為2號變數,其可為任意值,含路徑和檔名
以達到一行Rule可以包含絕大部份的頁面
Rewriterule ^([a-z0-9\-]+)/([a-z0-9\-\/]+)$ $2?subweb=$1 [NC,SQA,L]
但一直試都試不出來,可能是我的正規式寫錯~~"~~

想請教各位大大
這有辦法達到嗎,或是有其他更好的方法




本篇文章發表於2011-11-18 13:37
1樓
最有價值解答

ahsac
檢舉此回應
我覺得你那樣寫就還不錯了

RewriteRule ^([a-z0-9\-]+)/(.+\.php)$ $2?subweb=$1 [QSA]
RewriteRule ^([a-z0-9\-]+)/?$ test.php?subweb=$1 [QSA,L]

看這樣行不行, 我沒測試過
本篇文章回覆於2011-11-18 15:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.