В отличие от исходного маршрутизатора (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');
![]() |
Замечание |
---|---|
В большинстве случаев этот шаг не является обязательным и сильно не рекомендуется, так как вносит дополнительную переменную конфигурации, которая должна изменяться, когда производится перемещение кода в другой каталог. |