2012-02-23 84 views
2

這讓我很困惑。使用Zend路線?自定義網址

我如何定製/state/state_name以替換爲/state/state_name.php

最初state_name是一個變量,我不希望每個狀態都是我的StateController中的一個動作。相反,我想採取這個變量,並在一個特定的行動loadAction()處理它的內容。

這是因爲url /state/state_name.php已經進行了SEO優化,我希望它使用Zend Framework保持這種形式。

感謝您的任何幫助。任何建議將很樂意歡迎!

回答

2

也許是這樣的:

$route = new Zend_Controller_Router_Route_Regex(
    'state/([^/]+)\.php', 
    array(
     'controller' => 'state', 
     'action'  => 'load', 
    ), 
    array(
     'state_name' => 1, 
    ), 
    'state/%s.php' 
); 

但是,爲什麼如此重要的是保持.php後綴?如果有的話,它會不必要地暴露出用來構建頁面的底層服務器端技術。如果您稍後將整個站點更改爲Ruby On Rails或Django,該怎麼辦?爲什麼要將自己綁定到PHP?

如果你真的很喜歡後綴,那麼我想像.htm.html更好。但即使如此,你也會帶着一種潛在的難聞氣味。如果您想使用這個相同的控制器作爲返回JSON或XML數據的AJAX請求的終結點,該怎麼辦?

就我個人而言,我會保留在後綴上。