cPanel, subdomeny i domeny

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ć 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.dom1.com i sub.dom2.com, 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 gdzie 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, gdy korzystaliśmy w którymś katalogu z listowania jego zawartości (mod_dir). Wtedy będąc w jakimś podrzędnym katalogu, link do "Parent directory" wskazywał na naszą subdomenę + katalog subdoemny (sub.dom.net/sub/). Ale mimo to 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:

Życzę udanej zabawy w upraszczaniu swoich linków na www ;)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *