Webhosting – subdomény

  htaccess, Nastavení, Webhosting

Na webhostingu je možné vytvářet subdomény a pro každou subdoménu vytvořit vlastní obsah. Stačí přes FTP ve vašem webu vytvořit podadresář v adresáři www/subdom. Dále je nutné mít na webhostingu náš výchozí .htaccess

Soubor .htaccess

Subdomény fungují pomocí našich výchozích .htaccess pravidel. Je proto podmínka mít ve složce /www náš výchozí .htaccess soubor. Při zřízení webhostingu tam už je, pokud by došlo k jeho smazání, stačí vytvořit nový s obsahem:

RewriteEngine On

# cele domeny (aliasy)
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]

# subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]

# aliasy - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]

# subdomeny - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]

Tento kód řeší současně i vytvoření samostatného webu pro aliasy.

Vytvoření subdomény

Např. máme-li webhosting pro doménu example.com a chceme vytvořit subdoménu karel.example.com, založte přes FTP adresář www/subdom/karel a do takto vzniklého adresáře nahrajte soubory, které se mají zobrazovat na adrese http://karel.example.com/ (bude to fungovat též pro www.karel.example.com).

Taktéž se ujistěte, že u domény v DNS máte odpovídající A záznam směřující na příslušný webhostingový server – buď pro konkrétní subdoménu nebo pro všechny (hvězdičkový záznam).

Dále si přečtěte:

Různé subdomény pro různé aliasy

Pokud u webhostingu používáte současně aliasy a subdomény a vytvoříte např. adresář www/subdom/example, pak tím vytvoříte společnou subdoménu example pro všechny aliasy. To může být nežádoucí.

Chcete-li mít pro různé aliasy různé domény (např. example.alias1.cz má být jiný web než example.alias2.cz), pak vytvořte takto pojmenované podadresáře v www/domains, tedy v tomto příkladu www/domains/example.alias1.cz a www/domains/example.alias2.cz.

Obsah neexistujících subdomén

Pokud někdo přistoupí na adresu subdomény, která nemá na vašem webu vytvořený příslušný adresář, zobrazí se návštěvníkovi obsah adresáře www, tedy hlavní domény. Pokud je toto nežádoucí, lze použít snadný trik – přesuňte web hlavní domény z adresáře www do podadresáře www/domains/nazev-hlavni-domeny.cz – tedy pro hlavní doménu udelějte adresář jako kdyby to byl alias. Poté budou neexistující subdomény nadále končit v adresáři www, ale tam buď nebude nic nebo tam můžete dát stránku s informací o neexistující subdoméně nebo přesměrování apod.

V adresáři www však vždy ponechte námi připravený soubor .htaccess, jinak žádné weby fungovat nebudou.