W przeciwieństwie do oryginalnego routera, RewriteRouter może być użyty w
podkatalogach - automatycznie wykrywa twój bazowy adres URL i odpowiednio
go ustawia. Na przykład: jeśli twój plik index.php
jest umieszczony
na serwerze www w podkatalogu nazwanym /projects/myapp/index.php
bazowy adres URL zostanie ustawiony na /projects/myapp
. Ten
łańcuch znaków będzie wycięty z początku ścieżki przed dopasowaniem tras.
To uwalnia od konieczności dodawania bazowej ścieżki do wszystkich tras.
Trasa 'user/:username'
zostanie dopasowana
do adresów URI http://localhost/projects/myapp/user/martel
oraz http://example.com/user/martel
.
![]() |
Notatka |
---|---|
W automatycznym bazowym adresie URL rozróżniane są wielkie i małe litery, więc upewnij się, że twój adres URL będzie odpowiadał nazwie podkatalogu w systemie plików (nawet na komputerach z Windows). Jeśli nie będzie to zostanie wywołana akcja noRoute. |
Jeśli bazowy adres URL jest wykrywany nieprawidłowo, możesz go nadpisać własną ścieżką bazową za pomocą metody setRewriteBase z klasy RewriteRouter:
$router->setRewriteBase('/projects/myapp');
![]() |
Notatka |
---|---|
Ten krok nie jest konieczny w większości przypadków i jest mocno odradzany, ponieważ wprowadza kolejną zmienną konfiguracyjną, która musi być zmieniona gdy ktoś przeniesie kod do innego katalogu. |