Routing

Jeśli z jakichś przyczyn nie masz dostępu do routingu iDir, możesz opublikować odpowiednie pliki poleceniem:

php artisan vendor:publish --tag=idir.routes.web

Konfiguracja routingu dostępna jest z poziomu folderu:

/routes/vendor/idir/


# Zmiana wyglądu routów

Każdy route można dostosować do swoich potrzeb. Zmienić nazwę identyfikatora lub slash na myślnik. Przykład:

// https://adres-strony.pl/dirs/nowy-wpis
Route::match(['get', 'post'], 'dirs/{dir_cache}', [DirController::class, 'show'])
    ->name('dir.show')
    ->where('dir_cache', '[0-9A-Za-z,_-]+');

można zamienić na:

// https://adres-strony.pl/katalog-nowy-wpis
Route::match(['get', 'post'], 'katalog-{dir_cache}', [DirController::class, 'show'])
    ->name('dir.show')
    ->where('dir_cache', '[0-9A-Za-z,_-]+');

# Przekierowanie route na własny kontroler

Jeśli chcemy zmienić logikę aplikacji pod aktualnymi routami należy:

  • za pomocą Laravel Service Container zbindować nowy kontroler (połączony wzorcem Dekorator lub dziedziczeniem) pod stary namespace Przykład:
    $this->app->bind(\N1ebieski\IDir\Http\Controllers\Web\DirController::class, \App\Http\Controllers\Web\DirController::class);
  • zmodyfikować wybrany route w odpowiednim pliku w lokalizacji routes/vendor/idir przekierowując go na własny kontroler. Konfiguracja routingu aplikacji nadpisze wówczas konfigurację iDir.

W obu przypadkach zachowujemy cały stack middlewarów, jak również pozostałe ustawienia.

# Dostęp do routów panelu administracyjnego

Routy panelu administracyjnego można opublikować poleceniem:

php artisan vendor:publish --tag=idir.routes.admin


# Dostęp do routów API

Routy API można opublikować poleceniem:

php artisan vendor:publish --tag=idir.routes.api


# Zmiana prefixu grup routów

Prefix ("subfolder" w adresie) każdej grupy routów można zmienić z poziomu pliku .env w głównym folderze z aplikacją:

IDIR_ROUTES_WEB_PREFIX=
IDIR_ROUTES_ADMIN_PREFIX=admin
IDIR_ROUTES_API_PREFIX=api

Przykładowo zmieniając prefix dla adresów panelu administracyjnego na losowy ciąg liter i cyfr:

IDIR_ROUTES_ADMIN_PREFIX=fds78fs67dc

adres dostępowy panelu administracyjnego i wszystkich jego podstron zmieni się na:

https://adres-strony.pl/fds78fs67dc
Dzięki temu zostanie "ukryty" przed botami próbującymi wykorzystać znane podatności lub identyfikującymi oprogramowanie.


# Wyłączanie grup routów

Poszczególne grupy routów można wyłączyć z poziomu pliku config/idir.php ustawiając zmienną enabled:

    'routes' => [
        'web' => [
            'enabled' => false
        ],


Po wykonaniu zmian w konfiguracji routingu należy ponownie wykonać cache poleceniem:

php artisan route:cache