WordPress Multisite: 2 struktury, subdomena i podkatalog
WordPress Multisite to funkcja, która łączy kilka witryn w sieć i pozwala zarządzać nimi z jednej instalacji WordPressa. Na WordPressie w konfiguracji Nginx + Apache włączono Multisite na ekranie ustawiania sieci witryn, dodano jedną podwitrynę i sprawdzono ścieżki menu oraz wiersze, które trafiają do plików konfiguracyjnych.
1️⃣ WordPress Multisite i administracja siecią witryn
W Multisite wszystkie witryny w sieci korzystają razem z jednej instalacji WordPressa. Pliki rdzenia, wtyczki i motywy też są wspólne, więc na serwerze nie powstaje osobny folder WordPressa dla każdej witryny.
Osobno dla każdej witryny powstają tabele bazy danych i folder przesyłania mediów, a wspólne dla całej sieci są tylko tabele użytkowników. Pierwsza witryna korzysta z istniejącego [/wp-content/uploads/], a od następnej każda witryna używa folderu ze swoim numerem w [/wp-content/uploads/sites/].
Użytkownik, który zarządza całą siecią, to superadministrator (Super Admin). Ekrany administracji siecią witryn pojawiają się po utworzeniu sieci i widzi je tylko superadministrator.
Użytkownicy są tworzeni jako konta sieci, ale żeby wejść na daną witrynę, muszą dostać na niej rolę. Uprawnienia administratorów witryn też są mniejsze: instalować motywy i wtyczki oraz edytować profile innych użytkowników może tylko superadministrator.
Na diagramie poniżej zobaczysz, jak jedna instalacja dzieli się przez sieć na kilka witryn, oraz adresy witryn dla każdego typu adresu.
2️⃣ Subdomena a podkatalog: format adresu i ograniczenia wyboru
Przy ustawianiu sieci wybierasz typ adresu witryn: subdomenę albo podkatalog. Subdomena to adres w formacie site1.example.com, a podkatalog (podfolder) w formacie example.com/site1.
| Pozycja | Subdomena | Podkatalog |
|---|---|---|
| Adres witryny | site1.example.com | example.com/site1 |
| Nazwa w oficjalnej dokumentacji | Oparty na domenie (domain-based) | Oparty na ścieżce (path-based) |
| Przygotowanie po stronie serwera | Skierowanie subdomen do folderu instalacji WordPressa w DNS i na serwerze | Brak dodatkowych ustawień, jeśli działają bezpośrednie odnośniki |
| Gdy użytkownicy sami tworzą witryny | Potrzebne subdomeny wieloznaczne (wildcard) | Brak dodatkowych warunków |
| Kiedy nie można go wybrać | Gdy adres WordPressa ma ścieżkę albo jest to localhost lub adres IP | Witryny z wpisami opublikowanymi ponad miesiąc temu |
| Adres wpisów witryny głównej | Bez zmian | /blog/ przed adresem wpisów |
Przy podkatalogach na serwerze z działającymi bezpośrednimi odnośnikami nie trzeba nic dodatkowo ustawiać, ale tego typu nie można wybrać na witrynie z wpisami opublikowanymi ponad miesiąc temu. To ograniczenie zapobiega konfliktom między adresami istniejących wpisów a adresami nowych witryn, więc takie witryny instaluje się z subdomenami.
W sieci z podkatalogami do adresów wpisów witryny głównej dochodzi [/blog/]. Dzięki temu nie nakładają się na adresy podwitryn, a do adresów stron nie jest to dodawane.
Zmiana wybranego typu później wymaga kilku kroków. Według oficjalnej dokumentacji sama zmiana wartości [SUBDOMAIN_INSTALL] i reguł przepisywania nie przenosi adresów istniejących witryn, a DNS i certyfikaty też trzeba ustawić osobno.
3️⃣ Przygotowanie przed ustawieniem sieci: kopia zapasowa, bezpośrednie odnośniki i wymagania serwera
Ustawianie sieci zmienia pliki i bazę danych istniejącej witryny, dlatego oficjalna dokumentacja zaleca najpierw zrobić kopię zapasową, jeśli to nie jest świeżo zainstalowana witryna.
Zrób kopię zapasową bazy danych i plików, sprawdź, czy działają bezpośrednie odnośniki, a potem wyłącz wszystkie włączone wtyczki. Wtyczki włączysz z powrotem po utworzeniu sieci.
Jeśli planujesz przenieść WordPressa do osobnego folderu, zrób to przed włączeniem Multisite. Jeśli przy subdomenach używasz adresu z www, ustaw [Adres WordPressa (URL)] i [Adres witryny (URL)] tak samo, a zmianę domeny też dokończ przed instalacją.
Jeśli adres WordPressa ma numer portu inny niż :80 lub :443, nie można utworzyć sieci.
Serwer musi obsługiwać reguły przepisywania dla Multisite, a Apache potrzebuje mod_rewrite.
W konfiguracji Nginx + Apache Nginx przekazuje żądania do Apache, a Apache czyta plik .htaccess. Po zastąpieniu .htaccess regułami z ekranu ustawiania sieci witryn adresy podwitryny zaczęły się otwierać, a po stronie Nginx nie dodano żadnych reguł.
Na serwerach tylko z Nginx WordPress nie tworzy reguł przepisywania, więc konfigurację Nginx z oficjalnej dokumentacji trzeba dodać bezpośrednio do pliku konfiguracyjnego serwera.
W środowiskach, w których nie możesz sam zmienić konfiguracji serwera, na przykład na hostingu współdzielonym, warunki takie jak subdomeny wieloznaczne trzeba uzgodnić z firmą hostingową (według oficjalnej dokumentacji).
4️⃣ Kolejne kroki ustawiania sieci witryn
Stała [WP_ALLOW_MULTISITE] dodana do wp-config.php tylko pokazuje menu [Narzędzia] › [Ustawianie sieci witryn] — sama nie włącza Multisite. Sieć zaczyna działać dopiero po instalacji na tym ekranie i dodaniu wyświetlonych tam wierszy do wp-config.php i .htaccess.
Otwórz wp-config.php i nad komentarzem o końcu edycji dodaj wiersz, który definiuje [WP_ALLOW_MULTISITE] jako true. Komentarz o końcu edycji to wiersz /* That’s all, stop editing! Happy publishing. */; po zapisaniu odśwież przeglądarkę.
define( 'WP_ALLOW_MULTISITE', true );Po odświeżeniu w menu [Narzędzia] pod [Usuń dane osobiste] pojawia się [Ustawianie sieci witryn], a kliknięcie otwiera ekran [Utwórz sieć witryn opartych na WordPressie].

WordPress zainstalowany w podfolderze nie pokazuje pola wyboru typu adresu, tylko wiersz [Instalacja podkatalogowa]. Tekst w tym wierszu brzmi [Ponieważ twoja instalacja znajduje się w katalogu, witryny w sieci witryn WordPressa muszą używać podkatalogów.]
Sprawdź [Nazwa sieci witryn] i [Adres email administratora sieci witryn], a potem kliknij [Instaluj].
Według oficjalnej dokumentacji w instalacjach, w których można wybrać typ adresu, wybranie subdomen pokazuje komunikat o wieloznacznym DNS, a ten warunek dotyczy tylko sieci, w których użytkownicy sami tworzą witryny.
Po instalacji ekran pokazuje wiersze do wp-config.php i reguły do .htaccess dopasowane do tej witryny. Zrób kopię zapasową obu plików, wklej wiersze do wp-config.php pod wierszem [WP_ALLOW_MULTISITE], a w .htaccess zastąp dotychczasowe reguły WordPressa nowymi.

W instrukcji na ekranie po instalacji komentarz o końcu edycji jest wyświetlany w języku panelu administracyjnego, ale komentarz w pliku wp-config.php pozostaje po angielsku.
Do wp-config.php dochodzi sześć stałych, w tym [MULTISITE] i [SUBDOMAIN_INSTALL]. Wartość [SUBDOMAIN_INSTALL] to true przy subdomenach i false przy podkatalogach.
W [DOMAIN_CURRENT_SITE] i [PATH_CURRENT_SITE] znajdują się domena i ścieżka instalacji witryny. Poniżej są wiersze dla instalacji w katalogu głównym example.com z podkatalogami.
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );W tym samym przypadku reguły WordPressa w .htaccess zastępuje się poniższymi, a w wierszu [RewriteBase] znajduje się ścieżka instalacji.
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]Po zapisaniu obu plików zaloguj się ponownie przez odnośnik [Zaloguj się] na ekranie — wtedy na pasku administracyjnym pod [Moje witryny] pojawi się [Administracja siecią witryn]. Jeśli logowanie się nie udaje, usuń pamięć podręczną i ciasteczka przeglądarki i zaloguj się ponownie.

[Administracja siecią witryn] ma sześć menu: Kokpit, Witryny, Użytkownicy, Motywy, Wtyczki i Ustawienia, a kliknięcie [Witryny] otwiera listę witryn w sieci.

Podwitryny dodaje się przez [Dodaj witrynę] obok tytułu listy albo po lewej przez [Witryny] › [Dodaj witrynę].

W polu [Adres witryny (URL)] można wpisać tylko małe litery, cyfry i łączniki, a jeśli [Adres email administratora] nie istnieje w bazie danych, tworzony jest nowy użytkownik.
Po dodaniu jednej podwitryny w folderze przesyłania pojawił się folder [sites/2], a w bazie danych przybyło 10 tabel z numerem witryny po prefiksie, na przykład [wp_2_].
Bezpośrednie odnośniki podwitryny nie korzystają z ustawień witryny głównej i zaczynają od domyślnej struktury z rokiem, miesiącem, dniem i nazwą wpisu, dlatego ustawia się je osobno w ustawieniach bezpośrednich odnośników podwitryny.
W symulatorze poniżej możesz kliknąć po kolei ścieżkę od [Narzędzia] › [Ustawianie sieci witryn] do [Dodaj witrynę].
네트워크 설치 절차에 오신 것을 환영합니다!
아래의 정보를 채우고 워드프레스 사이트의 네트워크를 만들 수 있습니다. 다음 단계에서 구성 파일을 만들 것입니다.
다음 단계를 완료하여 사이트의 네트워크 만들기 기능을 활성화하세요.
- /var/www/html/wp/의 wp-config.php파일에 /* 그게 다입니다. 편집을 멈추세요! 즐겁게 발행하세요. */행 위에 다음을 추가합니다:wp-config.php에 대한 네트워크 환경설정 규칙define( 'MULTISITE', true );define( 'SUBDOMAIN_INSTALL', false );define( 'DOMAIN_CURRENT_SITE', 'example.com' );define( 'PATH_CURRENT_SITE', '/wp/' );define( 'SITE_ID_CURRENT_SITE', 1 );define( 'BLOG_ID_CURRENT_SITE', 1 );
- 다른 워드프레스 규칙을 교체하는 /var/www/html/wp/의 .htaccess 파일에 다음을 넣습니다:.htaccess에 대한 네트워크 환경설정 규칙RewriteEngine OnRewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]RewriteBase /wp/RewriteRule ^index\.php$ – [L]# add a trailing slash to /wp-adminRewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]RewriteCond %{REQUEST_FILENAME} -f [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ – [L]RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]RewriteRule . index.php [L]
이 단계를 완료하고나면, 네트워크를 활성화하고 구성합니다. 다시 로그인해야 합니다.
위의 이메일 주소가 데이터베이스에 없으면 새 사용자를 만들 것입니다.
비밀번호를 설정하는 사용자 이름과 링크를 이 이메일 주소로 보낼 것입니다.
5️⃣ Kiedy Multisite się nie sprawdza
Multisite pasuje tam, gdzie, jak w witrynach regionalnych, motywy i wtyczki są wspólne, a treść prowadzi się osobno. Jeśli witryny muszą ściśle współdzielić dane lub użytkowników, oficjalna dokumentacja zaznacza, że Multisite może nie być najlepszym rozwiązaniem.
Jeśli tylko wygląd ma być inny, wystarczy pojedyncza witryna z wtyczką, która zmienia motyw lub arkusz stylów. Gdy każda grupa użytkowników ma widzieć tylko inne informacje, też poradzisz sobie na pojedynczej witrynie z wtyczkami zmieniającymi uprawnienia i menu.
Najpierw sprawdź też wtyczki, których używasz. Nie każda wtyczka z katalogu wtyczek działa w Multisite, dlatego oficjalna dokumentacja zaleca sprawdzić obsługę na stronie wtyczki albo u jej autora.
🔢 FAQ & polecane treści
Serwer
Podstawowe ustawienia htaccess w WordPressie
Wpis, który osobno zbiera podstawowe reguły .htaccess dla zwykłych witryn i dla Multisite.
SEO
Subdomena VS podfolder
Wpis porównujący subdomeny i podfoldery pod kątem tego, co jest lepsze dla SEO.
Ustawienia
Bezpośrednie odnośniki i slugi w WordPressie
Wyjaśnia strukturę bezpośrednich odnośników i slugi ustawiane osobno dla każdej podwitryny.
ℹ️ Informacja o linkach partnerskich
Treści tej witryny zawierają linki partnerskie. Jeśli odwiedzający kupi produkt lub usługę przez taki link, witryna otrzymuje od sprzedawcy prowizję. Kwota płacona przy tym przez kupującego (podczas promocji spada↓) nie wzrasta. Podane ceny, rabaty i dostępność odnoszą się do chwili pisania i mogą różnić się od stanu faktycznego, dlatego przed zakupem sprawdź je u sprzedawcy. Produkty wybieramy i oceniamy według własnych kryteriów, a prowizja nie wpływa ani na kolejność prezentacji, ani na treść ocen.