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 вне - это не имеет смысла.

Другие вопросы по тегам