How to use extensions in Zend Framework Routing
I'd like to use an extension like .htm in my URLs. Есть ли способ сделать это?
I've defined the following rule:
frontend.route = '/:standort/:id'
Когда я использую следующее
frontend.route = '/:standort/:id.htm'
then the name of the variable is id.htm like in $params["id.htm"]. How can I tell the Zend Framework what to use as variables?
Привет
//Редактировать
my full config looks like this now:
frontend.type = 'Zend_Controller_Router_Route_Regex'
frontend.route = '/(.?)/(\w+?\.htm)'
frontend.defaults.module = 'frontend'
frontend.defaults.controller = 'index'
frontend.defaults.action = 'index'
frontend.defaults.standort = 'national'
frontend.map.1 = 'standort'
frontend.map.2 = 'id'
this is how I load the config
$file = APPLICATION_PATH . '/modules/' . $module . '/configs/routing.ini';
if(Zend_Loader::isReadable($file)){
$config = new Zend_Config_Ini($file);
$router = Zend_Controller_Front::getInstance()->getRouter();
$router->addConfig($config);
}
1 ответ
Вы можете сделать это с помощью регулярных выражений:
frontend.type = "Zend_Controller_Router_Route_Regex"
frontend.route = '/(.?)/(\w+?\.htm)'
frontend.map.1 = "standort"
frontend.map.2 = "id"
но если вы не пытаетесь сохранить существующую структуру URL, я бы просто оставил.htm вне - это не имеет смысла.