Zend Framework 以sub domain 為基準 routes

以Zend Framework 建置專案大部分的 routes:

1
http://www.test.tw/module/controller/action

例如:

1
http://www.test.tw/index/main/frontpage

則:
module 為 index
controller 為 main
action 為 frontpage

這樣來說為一般使用以符合需求.
但是在大型架構常常會發現,很多是因為流量或友善網址而作的改變.
如:
bbs.test.tw 為瀏覽討論區.
shop.test.tw 為瀏覽購物區.
blog.test.tw 為瀏覽網誌區.
這時如何辦到呢?
以上面所舉的例子來解,只要編輯application.ini:

1
2
3
4
5
6
7
resources.router.routes.www.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.www.route = ":module.test.tw"
resources.router.routes.www.defaults.module = "www"
resources.router.routes.www.chains.index.type = "Zend_Controller_Router_Route"
resources.router.routes.www.chains.index.route = ":controller/:action/*"
resources.router.routes.www.chains.index.defaults.controller = "index"
resources.router.routes.www.chains.index.defaults.action = "index"

上面這段是宣告sub domain 為基準 routes.

編輯application.ini加上:

1
2
3
4
5
6
7
8
9
10
11
resources.router.routes.news.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.news.route = "bbs.test.tw"
resources.router.routes.news.defaults.module = "bbs"
 
resources.router.routes.edu.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.edu.route = "shop.test.tw"
resources.router.routes.edu.defaults.module = "shop"
 
resources.router.routes.edu.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.edu.route = "blog.test.tw"
resources.router.routes.edu.defaults.module = "blog"

不同的sub domain分別對應上不同的module.

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *