# Zend_Controller_Router_Route_Static

The examples above all use dynamic routes -- routes that contain patterns to match against. Sometimes, however, a particular route is set in stone, and firing up the regular expression engine would be an overkill. The answer to this situation is to use static routes:

    $route = new Zend_Controller_Router_Route_Static(
        'login',
        array('controller' => 'auth', 'action' => 'login')
    );
    $router->addRoute('login', $route);

Above route will match a URL of `http://domain.com/login`, and dispatch to `AuthController::loginAction()`.

## Warning: Static Routes must Contain Sane Defaults

Since a static route does not pass any part of the URL to the request object as parameters, you must pass all parameters necessary for dispatching a request as defaults to the route. Omitting the "controller" or "action" default values will have unexpected results, and will likely result in the request being undispatchable.

As a rule of thumb, always provide each of the following default values:

- controller

- action

- module (if not default)

Optionally, you can also pass the "useDefaultControllerAlways" parameter to the front controller during bootstrapping:

    $front->setParam('useDefaultControllerAlways', true);

However, this is considered a workaround; it is always better to explicitly define sane defaults.