Необходимо еще больше сократить количество простых ссылок с помощью Zend Route - PullRequest
0 голосов
/ 23 мая 2011

Я мог бы спросить здесь слишком много, но я хотел бы знать, как я могу еще больше сократить URL-адреса, чтобы они выглядели так, как будто нет контроллера.

Например: я хочу сократить это:

www.mysite.com/users/Bob-123

до

www.mysite.com/Bob-123

или что-то вроде www.mysite.com/bob-123-user

Есть идеи здесь? - Я использую Zend Framework здесь

Ответы [ 2 ]

0 голосов
/ 23 мая 2011

В вашем application.ini вы можете сделать это, используя Zend_Controller_Router_Route_Regex :

resources.router.routes.user.route = "(\w+)-(\d+)"
resources.router.routes.user.type = "Zend_Controller_Router_Route_Regex" 
resources.router.routes.user.defaults.controller = users
resources.router.routes.user.defaults.action = index
resources.router.routes.user.map.1 = username
resources.router.routes.user.map.2 = id
resources.router.routes.user.reverse = "/%s-%d"

Вам необходимо указать собственное действие и контроллер. Надеюсь, это поможет.

0 голосов
/ 23 мая 2011

Вы можете сделать с помощью Zend Router.

Здесь вам нужно получить имена пользователей и добавить к ним маршруты. Таким образом, он распознает, какой контроллер и какое действие ему нужно получить.

$router = $this->_front->getRouter();

$route = new Zend_Controller_Router_Route(
    ':username',
    array(
        'controller' => 'profile',
        'action'     => 'userinfo'
    )
);

$router->addRoute('user', $route);

Пример взят из Zend Manual

...