我使用的模塊佈局來構建我的控制器:Zend的路由器問題
:模塊/:控制器/:動作
我想補充一個新的自定義路由,這樣下面的網址會工作。
domain.com/username
其中用戶名是在網站上,任何註冊用戶的用戶名。
任何人都可以指向正確的方向嗎?
謝謝
我使用的模塊佈局來構建我的控制器:Zend的路由器問題
:模塊/:控制器/:動作
我想補充一個新的自定義路由,這樣下面的網址會工作。
domain.com/username
其中用戶名是在網站上,任何註冊用戶的用戶名。
任何人都可以指向正確的方向嗎?
謝謝
請參閱此博客張貼的如何做到這一點在ZF的詳細解釋:
http://tfountain.co.uk/blog/2010/9/9/vanity-urls-zend-framework
http://framework.zend.com/manual/en/zend.controller.router.html涵蓋了相當良好的所有不同的方式,你可以添加路由。請記住,一旦你添加了自定義路線,默認的路線就不會工作了,除非你明確地定義它(以及在URL視圖助手等)。
我很欣賞這種努力。但是沒有必要引用文檔。我讀過它了。我的問題是關於路由處理中的一個不尋常的情況。 – iBiryukov 2011-06-04 23:49:53
不確定您是否可以製作類似domain.com/username
的東西。相反,你可以做domain.com/u/username
或domain.com/user/username
。例如,爲了使第二條路在你的application.ini你可以把類似下面的內容:
resources.router.routes.user.route = "/user/:user"
resources.router.routes.user.type = "Zend_Controller_Router_Route"
resources.router.routes.user.defaults.module = default
resources.router.routes.user.defaults.controller = user
resources.router.routes.user.defaults.action = user
resources.router.routes.user.defaults.user =
resources.router.routes.user.reqs.user = "\s+"
不是你不能做那個/用戶名的URL,但你的建議是非常好的。有沒有任何關鍵字的通用網址是不好的做法,因爲你最終有一些聯合行動,這將有更多的邏輯來確定該網址是用戶名,頁面或其他。在網址中使用關鍵字總是更好。 – 2011-06-04 12:23:46
>>在你的網址中使用關鍵字總是更好 從開發者的角度來看,這確實更好。但是,從用戶的角度來看,爲他們的頁面設置一個友好的URL會更好。 @marcin我知道如何處理標準案例。我的問題具體是關於非標準問題。 – iBiryukov 2011-06-04 23:48:25
謝謝。這就是我一直在尋找的。 – iBiryukov 2011-06-04 23:52:21