Как я могу сократить свои URL в Zend - PullRequest
2 голосов
/ 13 марта 2011

Например, я использую следующие URL для профиля пользователя / приборной панели:

example.com/person/person/profile
example.com/person/person/dashboard

Где person is module , 2nd person это контроллер и профиль и панель инструментов являются действия .

Но я хочу, чтобы если пользователь переходил по следующим URL, тоони должны указывать те же URL-адреса, соответственно упомянутые выше:

example.com/person/profile
example.com/person/dashboard

Можно ли как-нибудь удалить имя модуля из URL?Помните, я хочу сохранить текущую структуру каталогов.

Спасибо

1 Ответ

5 голосов
/ 13 марта 2011

Вы можете сделать это с помощью маршрутов, в вашей начальной загрузке добавить это

protected function _initRoutes()
{
    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini');
    $router = new Zend_Controller_Router_Rewrite();
    $router->addConfig($config, 'routes');
    Zend_Controller_Front::getInstance()->setRouter($router);
}

Затем в директории конфигурации создайте файл с именем routes.ini, который будет содержать ваши собственные маршруты, попробуйте эти

routes.person_profile.route = "person/profile"
routes.person_profile.defaults.controller = person
routes.person_profile.defaults.action = profile
routes.person_profile.defaults.module = person

routes.person_dashboard.route = "person/dashboard"
routes.person_dashboard.defaults.controller = person
routes.person_dashboard.defaults.action = dashboard
routes.person_dashboard.defaults.module = person

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

Значение route - это URI, который будет перезаписан значениями controller, action и module, например, маршрут person/profile будет автоматически отправлен на контроллер person, * Модуль 1018 * и действие profle.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...