I am trying here to create url, like:
/admin/login
/moderator/login
both the request would be served by same controller & action made for login, i.e. /account/login/<type>
Currently, all I am able to make the following URL:
/login/admin
/login/moderator
My current config file looks like the following:
resources.router.routes.login.route = "login/:type"
resources.router.routes.login.defaults.controller = "account"
resources.router.routes.login.defaults.action = "login"
I can't figure out, on how to put the type
variable at the start of URL, I tried it but it gives server error.
edit
I got this done, but can't understand why this didn't work earlier:
resources.router.routes.login.route = ":type/login"
resources.router.routes.login.defaults.controller = "account"
resources.router.routes.login.defaults.action = "login"
edit
Is it possible to make this arrangement more flexible, so that:
/login
=> /admin/login
I am not looking for solution via .htaccess
Add the following to your Bootstrap.php
function _initRoutes() {
$front_controller = Zend_Controller_Front::getInstance();
$router = $front_controller->getRouter();
$router->addRoute('login', new Zend_Controller_Router_Route(
'/:type/login', array('controller' => 'account', 'action' => 'login')
));
}
from your loginAction() use:
$this->getRequest()->getParam('type');
Simple?
来源:https://stackoverflow.com/questions/12196330/how-to-add-variable-at-the-start-of-the-url-in-zend-framework