cPanel, subdomeny i domeny
• tech • 633 słowa • 3 minuty czytania
cPanel jest z jednym z lepszych, a na pewno najczęściej spotykanych, paneli administracyjnych do zarządzania swoim serwerem wirtualnym lub hostingiem. Za jego pomocą można łatwo zarządzać podpiętymi domenami, jak również tworzyć różne subdomeny. Wszystko fajnie i super, tylko cPanel ma jedna wadę odnośnie tworzenia subdomen, która może być trochę upierdliwa.
Mamy sobie konto hostingowe na serwerze moje-konto.pl.
Mamy podpięte dwie domeny do naszego konta: dom.com i dom.net, które analogicznie wskazują na katalog dom-com
i dom-net
na naszym serwerze. Dodatkowo cPanel utworzył w czasie podpinania subdomenę dla każdej podpiętej domeny, w tym wypadku będzie to dom-com.nasze-konto.pl i dom-net.nasze-konto.pl, ale to mało istotne w tym przypadku.
Teraz tworząc subdomenę dla każdej z tych domen, o takiej samej nazwie, to cPanel dla każdej z nich przypisze ten sam katalog! Oba adresy, sub.dom.com i sub.dom.net, będą wskazywać na ten sam katalog sub
znajdujący się w katalogu głównym naszego konta. Nie ma możliwości zmiany tego katalogu.
I główny problem pojawia się gdy chcemy, aby każda z tych subdomen wskazywała na zupełnie inny nie związany ze sobą katalog. Na razie znalazłem dwa rozwiązania tego problemu.
Zapominamy o opcji “Subdomeny”, gdy chcemy utworzyć subdomenę dla podpiętych domen, a wykorzystujemy ją tylko dla głównej domeny moje-konto.pl lub innej zaparkowanej domeny… Subdomeny tworzymy za pomocą opcji “Domeny podpięte”. Nasze subdomeny podpinamy do konta tak jak gdyby były zwykłymi pełnoprawnymi domenami. Mamy wtedy możliwość określenia katalogu docelowego, na który domena będzie wskazywać :)
Standardowo dla naszej sub.dom.com będzie to katalog sub-dom-com
w głównym katalogu naszego konta. Sposób prosty i łatwy, rozwiązujący nasz problemy. Gdybyśmy jednak chcieli, aby katalog naszej subdomeny był podkatalogiem w katalogu głównym domeny (dom-com/sub
) musimy skorzystać z innego rozwiązania.
Rozwiązanie drugie jest podobne do pierwszego, z tą różnicą, że w czasie wybierania katalogu podajemy katalog główny naszej domeny nadrzędnej, czyli dom-com
. W takim wypadku nasza (sub)domena będzie wskazywała tę samą zawartość co główna domena. Tego jednak docelowo nie chcemy, więc musimy skorzystać z pomocy modułu mod_rewrite.
W katalogu domeny (dom-com
) w pliku .htaccess
wpisujemy:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^(www\.)?malcom\.xorg\.pl
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.malcom\.xorg\.pl [NC]
RewriteRule (.*) /%2/$1 [L]
I teraz nasza domena wskazuje na podkatalog o takiej samej nazwie znajdujący się w katalogu głównym domeny (w naszym przykładzie dom-com/sub
).
Ten sposób działa bez zarzutu, niemniej może wymagać trochę bardziej skomplikowanych reguł mod_rewrite, bo ja się nim bawiłem tylko przez kilka godzin, a wcześniej nie miałem z nim zbytnio styczności. To też w pewnych okolicznościach podane wyżej reguły mogą nie funkcjonować dobrze lub nie tak jak byśmy tego chcieli.
W czasie testów ukazał się mały problem. Korzystając w którymś katalogu z listowania jego zawartości (mod_dir) i będąc w jakimś podrzędnym katalogu, odnośnik do “Parent directory” wskazywał na naszą subdomenę + katalog subdoemny (sub.dom.net/sub/
). Ale mimo tego wszystko działało prawidłowo. Tylko ten nieszczęsny człon w adresie się pojawił…
Podsumowując, warto wymienić kilka uwag odnośnie obu rozwiązań.
Mianowicie drugie rozwiązanie wymaga mod_rewrite, który nie zawsze jest dostępny na naszym serwerze hostingowym. Ale gdy już jest daje nam dużo możliwości i pełną kontrolę nad (sub)domenami. Musimy tylko dobrze pomyśleć i zapoznać się z regułami mod_rewrite-a ;)
Pierwsze rozwiązanie w porównaniu do drugiego ma tę przewagę, że dla każdej subdomeny mamy dostęp z FTP-a, gdzie użytkownik będzie mógł się poruszać tylko w obrębie katalogów danej subdomeny. Nie będzie mógł przejść do katalogu nadrzędnego (głównego) naszego konta. Przydatne, gdy chcemy daną subdomenę udostępnić komuś innemu :)
W drugim rozwiązaniu dostęp do katalogu subdomen jest możliwy tylko przez katalog główny domeny, chyba że spróbujemy w cPanelu utworzyć konto FTP bezpośrednio tylko dla katalogu subdomeny. Powinno zadziałać, ale nie testowałem, więc nie jestem tego pewny.
Na koniec kilka linków, które mogą się okazać przydatne:
- cPanel 9.5.x - opis funkcji
- Apache module mod_rewrite [EN]
- Kurs mod_rewrite
- Mini tutorial używania mod_rewrite z życiowymi przykładami (;
Życzę udanej zabawy w upraszczaniu swoich linków na www ;)
Komentarze (0)