作者HuangJC (吹笛牧童)
看板PHP
標題[CakePHP] 請問網址的解釋
時間Thu Jun 12 12:06:18 2008
CakePHP 的 URI,可以被解譯成為 M,V,C 及參數
灌好了,手冊就教我要這麼看
可是不了解細節還是有點不舒服
請問這是怎麼做到的呢?
如果想像我來做,那就必需 Apache 不以檔案架構來尋檔
(但我直覺它就是以檔案架構尋檔,所以會回應我錯誤;檔案不存在)
並且 Apache 願意把 URI 塞進一個字串變數裏
傳給一個我指定的程式 (比如 PHP)
讓我去 parsing
那我就有機會把 URI 切割成參數,並且重組,重導向
這個是不是 .htaccess 在做的呢?
不過它的文件真是看不懂
有沒有先進可以再縮小一些範圍,謝謝
;;
試出來了,是 XD
RewriteRule (.*) app/webroot/$1 [L]
比如這一行,可以把
http://localhost/cake/test.txt
重導向到
http://localhost/cake/app/webroot/test.txt
說明文件在
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteRule
不過我看不懂一些細節
只能悶著接受了
;;
試解
( ) Grouping of text,文件中的'RHS'看不懂
總之是說可以在代換字串中用 $N 來表達
. 任何單字
* 前置字串的第 0 or N 個
所以我很勉強的把
(.*) app/webroot/$1 解釋成 任何檔名都重導至 app/webroot 下
至於 [L] 則找不到解釋
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.65.16
※ 編輯: HuangJC 來自: 61.219.65.16 (06/12 12:35)
推 ybite:[L] means "last rule", 就在同一份文件裡面 06/12 17:01
→ ybite:簡單來講MVC framework通常是用mod_rewrite把網址導向 06/12 17:01
→ ybite:到index.php,路徑會變成index.php的一個參數 06/12 17:07
→ ybite:所以程式可以這樣work。CakePHP你可以調整"Route"的設定。 06/12 17:08
→ ybite:Apache 2.0的URL Rewriting Guide寫的不錯 06/12 17:08
推 MrMarcus:"RHS"通常是指"Right-hand side",某分隔點右邊的東西 06/14 14:46
→ MrMarcus:另外可以試著在index.php裡面開頭print_r($_SERVER); 06/14 14:47
→ MrMarcus:$_SERVER裡頭有很多好用的東西,其中就有可以拿來解析目前 06/14 14:48
→ MrMarcus:網址參數的(PATH_INFO還是別的,有點忘記) 06/14 14:48