В отличие от исходного маршрутизатора (Router), RewriteRouter может
использоваться в подкаталогах -- он автоматически определяет ваш основной
URL и устанавливает его. Например, если вы держите ваш index.php
в подкаталоге веб-сервера /projects/myapp/index.php, то основной
URL будет установлен в /projects/myapp. Эта строка затем будет
отсекаться от начала пути перед любым сопоставлением с маршрутом.
Это освобождает от необходимости добавлять ее к каждому маршруту.
Маршрут 'user/:username' будет соответствовать таким путям, как
http://localhost/projects/myapp/user/martel и
http://example.com/user/martel.
![]() |
Замечание |
|---|---|
Автоматическая замена основы URL чувствительна к регистру, поэтому удостоверьтесь,
что ваш URL будет соответствует имени подкаталога в файловой системе
(даже под Windows). Если вы не сделаете этого, то в результате может
вызываться действие noRoute.
|
Если основной URL определяется неправильно, то вы можете заменить его своим
с помощью метода setRewriteBase() класса RewriteRouter:
$router->setRewriteBase('/projects/myapp');
![]() |
Замечание |
|---|---|
| В большинстве случаев этот шаг не является обязательным и сильно не рекомендуется, так как вносит дополнительную переменную конфигурации, которая должна изменяться, когда производится перемещение кода в другой каталог. |