2012-03-21 3 views
3

Я получил сайт на Zend Framework (im total noob в Zend). Например, я хотел бы сделать один URL-адрес «somewebsite.com/test/about« чтобы выглядеть так »somewebsite.com/for-fun-link«. Как мне достичь этого в Zend? Im новичок на сервере Zend и Apache. Где я переписываю в Zend? Я хочу, чтобы статический URL somewebsite.com/page/about переписывают в somewebsite.com/about-productZend Framework - как переписать URL-адрес для SEO-ссылки

И последний вопрос: где я обычно создаю переписывает? это зависит от уровня/технологии?

+1

поиск пользовательских маршрутов .. например. http://www.zendcasts.com/creating-custom-zend_controller-routes-2/2009/01/ – Rufinus

+1

Это одно из темных искусств в ZF, поэтому вам нужен более узкий вопрос, чтобы получить полезный ответ. Все, что я могу сделать, это предложить начать [здесь] (http://framework.zend.com/manual/en/zend.controller.router.html) – RockyFord

+0

Большое спасибо. Это очень помогает мне. У меня не было файла bootstrap.php, но я применил код от screencast к index.php, и он отлично работал с preatty :). Еще раз спасибо за помощь. – born2fr4g

ответ

2

В вашем бутстрапе вам необходимо настроить некоторые «маршруты». Таким образом, если ваша загрузка заканчивается что-то вроде этого:

$frontController = Zend_Controller_Front::getInstance(); 
$frontController->dispatch(); 

вы можете просто добавить в некоторых определениях маршрутов, как это:

$frontController = Zend_Controller_Front::getInstance(); 

$router = $frontController->getRouter(); 
$router->addRoute('mylovelyroute', 
    new Zend_Controller_Router_Route_Static('for-fun-link', 
     array('controller' => 'test', 'action' => 'about') 
    ) 
); 
$router->addRoute('myotherroute', 
    new Zend_Controller_Router_Route_Static('about-product', 
     array('controller' => 'page', 'action' => 'about') 
    ) 
); 
$router->addRoute('justonemore', 
    new Zend_Controller_Router_Route_Static('another/longer/path', 
     array('controller' => 'mycontroller', 
      'action' => 'myaction', 
      'someparameter' => 'foo' 
     ) 
    ) 
); 

$frontController->dispatch(); 

Первый параметр addRoute() это просто уникальное имя. Zend_Controller_Router_Route_Static берет путь, который вы хотите захватить, а затем массив параметров, включая контроллер и действие (и модуль, если он применяется).

Если вы хотите добавить сложность, вы можете загрузить маршруты из базы данных или начать использовать более динамические маршруты. Документы здесь являются полезным следующим шагом: http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes.standard

Смежные вопросы