Jak zmienić adres URL panelu administracyjnego PrestaShop
Dlaczego warto zmienić domyślny adres URL panelu administracyjnego
Każda instalacja PrestaShop tworzy katalog administracyjny o nazwie takiej jak admin1234 — cyfry są generowane losowo podczas instalacji. W tym katalogu znajduje się back office Twojego sklepu. Choć losowy przyrostek zapewnia pewien podstawowy poziom ukrycia, nie jest to silne zabezpieczenie. Zautomatyzowane boty i atakujący rutynowo skanują tysiące stron internetowych w poszukiwaniu typowych wzorców adresów URL panelu administracyjnego. Zmiana adresu URL panelu na coś nieprzewidywalnego dodaje znaczącą warstwę obrony.
Głównym powodem zmiany nazwy folderu administracyjnego jest zmniejszenie narażenia na ataki brute-force na logowanie. Jeśli atakujący nie może znaleźć Twojej strony logowania, nie może próbować odgadnąć Twojego hasła. Nie zastępuje to silnych haseł i innych środków bezpieczeństwa, ale jest skutecznym pierwszym krokiem, który nic nie kosztuje i zajmuje zaledwie kilka minut.
Dodatkowo niestandardowy adres URL panelu sprawia, że Twój sklep wygląda bardziej profesjonalnie, jeśli pracownicy lub klienci muszą uzyskać dostęp do back office. Adres URL taki jak twojadomena.com/zarzadzanie-sklepem/ jest łatwiejszy do zapamiętania i przekazania niż twojadomena.com/admin7382pqxz/.
Jak działają adresy URL panelu administracyjnego PrestaShop
Katalog administracyjny PrestaShop to fizyczny folder na Twoim serwerze. Gdy wpisujesz twojadomena.com/admin1234/ w przeglądarce, serwer WWW szuka katalogu admin1234 i serwuje plik index.php znajdujący się w nim. Oznacza to, że zmiana adresu URL panelu administracyjnego to przede wszystkim kwestia zmiany nazwy katalogu w systemie plików serwera.
Wewnątrz katalogu administracyjnego PrestaShop przechowuje pliki kontrolerów, pliki szablonów i konfigurację, która odwołuje się do ścieżki administracyjnej. W PrestaShop 1.7 i 8.x katalog administracyjny zawiera również komponenty routingu Symfony. Konfiguracja wewnętrzna przechowuje nazwę katalogu administracyjnego w pliku app/config/parameters.php (lub config/parameters.php w starszych wersjach) pod kluczem ps_admin_dir. Ta wartość musi się zgadzać z rzeczywistą nazwą katalogu, aby back office działał prawidłowo.
Krok po kroku: Zmiana nazwy katalogu administracyjnego
Metoda 1: Przez FTP lub Menedżer plików
Jest to najbezpieczniejsza i najprostsza metoda. Działa na wszystkich typach hostingu i wszystkich wersjach PrestaShop od 1.6 do 8.x i 9.x.
- Połącz się z serwerem przez FTP (FileZilla, WinSCP) lub użyj menedżera plików w panelu hostingu (cPanel, Plesk).
- Przejdź do głównego katalogu PrestaShop — jest to miejsce, gdzie widzisz foldery takie jak
classes/,modules/,themes/oraz Twój aktualny folder administracyjny. - Zidentyfikuj aktualny folder administracyjny. Będzie miał nazwę w stylu
admin1234lubadmin-dev(w instalacjach deweloperskich). Nie myl go z folderemadmin-dev/, jeśli masz zainstalowaną wersję ze źródeł. - Zmień nazwę folderu na wybraną przez siebie. Kliknij prawym przyciskiem myszy na folder w kliencie FTP i wybierz „Zmień nazwę". Wybierz nazwę, która jest trudna do odgadnięcia, ale łatwa do zapamiętania. Dobre przykłady:
manage-xyz,backoffice-abc,control-2024. Unikaj oczywistych nazw takich jakadmin,administrator,backend,dashboardczymanage. - Zaktualizuj plik konfiguracyjny. Otwórz
app/config/parameters.phpw edytorze tekstu i znajdź linię zawierającąps_admin_dir. Zmień wartość tak, aby dokładnie odpowiadała nowej nazwie katalogu. - Wyczyść cache. Usuń zawartość
var/cache/prod/ivar/cache/dev/(jeśli istnieje). Stary cache zawiera odwołania do poprzedniej nazwy katalogu administracyjnego. - Przetestuj nowy adres URL. Otwórz przeglądarkę i przejdź pod adres
twojadomena.com/twoja-nowa-nazwa-admina/. Powinieneś zobaczyć stronę logowania PrestaShop.
Metoda 2: Przez SSH (Wiersz poleceń)
Jeśli masz dostęp SSH do serwera, możesz zmienić nazwę katalogu jednym poleceniem:
cd /var/www/html/prestashop
mv admin1234 twoja-nowa-nazwaNastępnie zaktualizuj konfigurację:
sed -i "s/admin1234/twoja-nowa-nazwa/g" app/config/parameters.phpI wyczyść cache:
rm -rf var/cache/prod/* var/cache/dev/*Ta metoda jest szybsza i mniej podatna na błędy niż używanie FTP, szczególnie jeśli nazwa katalogu pojawia się w wielu miejscach pliku konfiguracyjnego.
Różnice między wersjami PrestaShop
PrestaShop 1.6
W PrestaShop 1.6 nazwa katalogu administracyjnego jest przechowywana w config/settings.inc.php zamiast w app/config/parameters.php. Szukaj linii w stylu:
define('_PS_ADMIN_DIR_', '/var/www/html/prestashop/admin1234');Zmień ścieżkę, aby odpowiadała nowej nazwie katalogu. Struktura katalogu app/ nie istnieje w wersji 1.6, ponieważ poprzedza ona integrację z Symfony. Poza tym proces zmiany nazwy katalogu jest identyczny.
PrestaShop 1.7
PrestaShop 1.7 wprowadził framework Symfony, co dodało plik app/config/parameters.php. Jednak 1.7 nadal zachowuje wsteczną kompatybilność z niektórymi elementami starszego routingu administracyjnego. Po zmianie nazwy wyczyść zarówno cache Smarty (var/cache/), jak i cache Symfony. Nazwa katalogu administracyjnego jest przechowywana w parameters.php w tablicy parameters:
'parameters' => array(
// ...
'ps_admin_dir' => 'twoja-nowa-nazwa',
// ...
)PrestaShop 8.x
PrestaShop 8.x kontynuuje architekturę z wersji 1.7 z głębszą integracją Symfony. Proces jest taki sam jak w 1.7, ale plik parameters.php może w niektórych konfiguracjach używać konfiguracji opartej na YAML. Sprawdź zarówno app/config/parameters.php, jak i app/config/parameters.yml, jeśli istnieje. Po zmianie nazwy zawsze całkowicie wyczyść cache.
PrestaShop 9.x
PrestaShop 9.x dalej udoskonala integrację z Symfony. Koncepcja katalogu administracyjnego pozostaje, ale routing jest bardziej oparty na Symfony. Plik parameters.php lub parameters.yml nadal zawiera odniesienie do katalogu administracyjnego. Proces zmiany nazwy pozostaje niezmieniony, ale zwróć szczególną uwagę na wyczyszczenie wszystkich warstw cache, ponieważ cache routingu Symfony jest bardziej agresywny w wersji 9.x.
Aktualizacja .htaccess po zmianie nazwy
W większości przypadków nie musisz modyfikować pliku .htaccess w głównym katalogu PrestaShop po zmianie nazwy folderu administracyjnego. Reguły .htaccess PrestaShop zazwyczaj nie odwołują się do katalogu administracyjnego po nazwie. Reguły przekierowań obsługują front office (strony widoczne dla klientów), a katalog administracyjny jest dostępny bezpośrednio bez przepisywania adresów.
Istnieją jednak wyjątki. Jeśli dodałeś niestandardowe reguły bezpieczeństwa do .htaccess, które odwołują się do starej nazwy katalogu administracyjnego, musisz zaktualizować te reguły. Na przykład, jeśli wcześniej dodałeś białą listę IP dla obszaru administracyjnego:
# Stara reguła
<Directory /var/www/html/prestashop/admin1234>
Order Deny,Allow
Deny from all
Allow from 203.0.113.50
</Directory>To musi zostać zaktualizowane, aby odwoływać się do nowej nazwy katalogu. Podobnie sprawdź wszelkie wtyczki bezpieczeństwa (takie jak reguły mod_security) lub konfiguracje CDN (reguły stron Cloudflare), które mogą odwoływać się do starej ścieżki administracyjnej.
Sprawdź również plik .htaccess wewnątrz samego katalogu administracyjnego. PrestaShop umieszcza go tam na potrzeby wewnętrznego routingu. Plik ten zazwyczaj nie wymaga modyfikacji, ponieważ używa ścieżek względnych, ale po zmianie nazwy zweryfikuj go, aby upewnić się, że nic nie jest zepsute.
Typowe pułapki i czego NIE robić
Nie używaj dowiązań symbolicznych jako skrótu
Niektórzy administratorzy tworzą dowiązanie symboliczne (symlink) z nowej nazwy do starego katalogu administracyjnego, zamiast faktycznie go zmieniać. To całkowicie niweczy cel, ponieważ stary katalog nadal istnieje i jest dostępny. Zawsze wykonuj prawdziwą zmianę nazwy, a nie tworzenie dowiązania symbolicznego.
Nie zapomnij zaktualizować parameters.php
Najczęstszym pojedynczym błędem jest zmiana nazwy katalogu bez zaktualizowania pliku konfiguracyjnego. Gdy tak się stanie, zobaczysz białą stronę lub błąd 500 przy próbie dostępu do panelu administracyjnego. PrestaShop wewnętrznie odwołuje się do nazwy katalogu administracyjnego z konfiguracji, a niezgodność powoduje natychmiastową awarię.
Nie wybieraj oczywistych nazw
Zmiana nazwy katalogu administracyjnego z admin1234 na admin lub administrator jest kontrproduktywna. Zautomatyzowane skanery sprawdzają te oczywiste nazwy w pierwszej kolejności. Wybierz coś, co łączy słowa i cyfry w sposób trudny do odgadnięcia: store-mgmt-7x9, bo-access-42, a nawet całkowicie losowy ciąg znaków jak kx9m4p2q.
Nie zmieniaj nazwy, gdy użytkownicy są zalogowani
Aktywne sesje back office zostaną natychmiast przerwane po zmianie nazwy katalogu. Każdy użytkownik administracyjny aktualnie zalogowany zobaczy błąd i utraci niezapisaną pracę. Wykonuj zmianę nazwy w okresie niskiego ruchu i powiadom personel korzystający z back office.
Nie zapomnij o zakładkach i zapisanych linkach
Po zmianie nazwy zaktualizuj wszelkie zakładki, zapisane hasła w przeglądarce, wpisy w menedżerze haseł i dokumentację odwołującą się do starego adresu URL panelu. Powiadom wszystkich pracowników mających dostęp do back office o nowym adresie URL.
Nie używaj znaków specjalnych ani spacji
Nazwa katalogu administracyjnego musi być prawidłowym komponentem ścieżki URL. Używaj wyłącznie małych liter, cyfr i myślników. Unikaj spacji, podkreślników (choć działają, myślniki są czystsze), znaków akcentowanych i wszelkich znaków specjalnych.
Konflikty modułów i uwagi dotyczące modułów zewnętrznych
Większość dobrze napisanych modułów PrestaShop używa wewnętrznych funkcji PrestaShop do określania ścieżki katalogu administracyjnego, zamiast ją hardkodować. Te moduły będą nadal działać po zmianie nazwy bez żadnej interwencji. Jednak niektóre źle zakodowane moduły mogą hardkodować ścieżkę administracyjną w swoich plikach konfiguracyjnych, JavaScript lub endpointach AJAX.
Po zmianie nazwy katalogu administracyjnego przetestuj następujące elementy w back office:
- Wszystkie zainstalowane moduły — otwórz stronę konfiguracji każdego modułu
- Każdy moduł korzystający z wywołań AJAX (sprawdź konsolę przeglądarki pod kątem błędów 404)
- Callbacki i webhooki modułów płatności
- Wszelkie niestandardowe integracje lub połączenia ERP odwołujące się do adresu URL panelu
- Zadania cron wywołujące zadania po stronie administracyjnej
Jeśli moduł przestaje działać po zmianie nazwy, sprawdź jego pliki konfiguracyjne pod kątem zhardkodowanych ścieżek administracyjnych. Wiele modułów przechowuje swoje ustawienia w tabeli bazy danych ps_configuration, a niektóre z tych wartości mogą zawierać starą nazwę katalogu administracyjnego.
Aby przeszukać bazę danych pod kątem odwołań do starego katalogu administracyjnego:
SELECT * FROM ps_configuration WHERE value LIKE '%admin1234%';Zastąp admin1234 starą nazwą katalogu, a ps_ rzeczywistym prefiksem Twojej bazy danych.
Dodatkowe środki bezpieczeństwa dla obszaru administracyjnego
Zmiana nazwy katalogu administracyjnego to dobry pierwszy krok, ale powinna być częścią kompleksowej strategii bezpieczeństwa. Rozważ te dodatkowe środki:
Biała lista adresów IP
Jeśli Ty i Twój zespół zawsze uzyskujecie dostęp do back office ze stałych adresów IP, możesz ograniczyć dostęp na poziomie serwera WWW. Dla Apache, dodaj do .htaccess w katalogu administracyjnym:
Order Deny,Allow
Deny from all
Allow from 203.0.113.50
Allow from 198.51.100.25Dla Nginx, dodaj do bloku server:
location /twoja-nazwa-admina/ {
allow 203.0.113.50;
allow 198.51.100.25;
deny all;
}To jest niezwykle skuteczne, ponieważ nawet jeśli atakujący odkryje Twój adres URL panelu, nie będzie mógł uzyskać dostępu do strony logowania z nieautoryzowanego adresu IP.
Uwierzytelnianie dwuskładnikowe (2FA)
PrestaShop 8.x nie zawiera wbudowanego 2FA, ale kilka modułów zapewnia tę funkcjonalność. Uwierzytelnianie dwuskładnikowe wymaga dodatkowego kroku weryfikacji (zazwyczaj kodu z aplikacji mobilnej, takiej jak Google Authenticator) oprócz hasła. Dzięki temu ataki brute-force stają się praktycznie niemożliwe, nawet jeśli atakujący zna zarówno adres URL panelu, jak i hasło.
Certyfikat SSL/TLS
Zawsze uzyskuj dostęp do panelu administracyjnego przez HTTPS. Szyfruje to dane logowania podczas transmisji, zapobiegając atakom typu man-in-the-middle. Większość dostawców hostingu oferuje bezpłatne certyfikaty SSL przez Let's Encrypt. Back office PrestaShop powinien być skonfigurowany tak, aby wymuszał SSL w Parametry sklepu > Ogólne > Włącz SSL oraz Włącz SSL na wszystkich stronach.
Ograniczanie prób logowania
PrestaShop zawiera podstawową ochronę przed brute-force, która blokuje adresy IP po określonej liczbie nieudanych prób logowania. Upewnij się, że jest to włączone w ustawieniach bezpieczeństwa. Możesz również wdrożyć ograniczanie szybkości żądań (rate limiting) na poziomie serwera WWW za pomocą modułów takich jak mod_evasive dla Apache lub limit_req dla Nginx.
Regularna rotacja haseł
Upewnij się, że wszystkie konta administracyjne używają silnych, unikalnych haseł. Dobre hasło ma co najmniej 16 znaków i zawiera mieszankę liter, cyfr i symboli. Używaj menedżera haseł do generowania i przechowywania tych haseł. Zmieniaj hasła okresowo, szczególnie gdy pracownik odchodzi z firmy lub dochodzi do incydentu bezpieczeństwa.
Audyt kont administracyjnych
Regularnie przeglądaj listę kont administracyjnych w Zaawansowane > Zespół > Pracownicy. Usuń lub dezaktywuj konta pracowników, którzy nie potrzebują już dostępu. Każda osoba powinna mieć własne konto, zamiast dzielić się danymi logowania — umożliwia to śledzenie, kto wprowadził które zmiany.
Co zrobić, gdy utracisz dostęp
Jeśli zmienisz nazwę katalogu administracyjnego i nie możesz uzyskać dostępu do back office, nie panikuj. Połącz się z serwerem przez FTP lub SSH i albo zmień nazwę katalogu z powrotem na oryginalną, albo sprawdź plik parameters.php, aby upewnić się, że nazwa katalogu się zgadza. Jeśli zgubiłeś zarówno nazwę katalogu, jak i konfigurację, sprawdź rzeczywistą listę katalogów na serwerze — katalog administracyjny to ten, który zawiera pliki takie jak ajax-tab.php, init.php oraz podkatalog themes/ z motywem back office.
Możesz również znaleźć nazwę katalogu administracyjnego w bazie danych:
SELECT value FROM ps_configuration WHERE name = 'PS_ADMIN_DIR';Pamiętaj jednak, że nie wszystkie wersje PrestaShop przechowują tę wartość w tabeli konfiguracji. Plik parameters.php jest autorytatywnym źródłem informacji.
Automatyzacja zmiany adresu URL panelu za pomocą narzędzia
Jeśli zarządzasz wieloma instalacjami PrestaShop, możesz stworzyć prosty skrypt powłoki do automatyzacji procesu zmiany nazwy:
#!/bin/bash
OLD_NAME="$1"
NEW_NAME="$2"
PS_ROOT="/var/www/html/prestashop"
if [ -z "$OLD_NAME" ] || [ -z "$NEW_NAME" ]; then
echo "Użycie: $0 stara-nazwa-admina nowa-nazwa-admina"
exit 1
fi
mv "$PS_ROOT/$OLD_NAME" "$PS_ROOT/$NEW_NAME"
sed -i "s/$OLD_NAME/$NEW_NAME/g" "$PS_ROOT/app/config/parameters.php"
rm -rf "$PS_ROOT/var/cache/prod/*" "$PS_ROOT/var/cache/dev/*"
echo "Katalog administracyjny zmieniony z $OLD_NAME na $NEW_NAME"
echo "Proszę zweryfikować dostęp pod adresem: twojadomena.com/$NEW_NAME/"Zapisz to jako rename-admin.sh, nadaj mu uprawnienia do wykonywania poleceniem chmod +x rename-admin.sh i uruchom go z nazwami starego i nowego katalogu jako argumentami. Zawsze testuj nowy adres URL natychmiast po uruchomieniu narzędzia.
Stosując się do tych kroków i łącząc zmianę adresu URL panelu z dodatkowymi środkami bezpieczeństwa, znacząco zmniejszysz powierzchnię ataku back office Twojego sklepu PrestaShop.
Czy ta odpowiedź była pomocna?
Masz jeszcze pytania?
Can't find what you're looking for? Send us your question and we'll get back to you quickly.