Tento komunitní článek je aktuální k 29. 8. 2019.
Při zřízení webhostingu nahrajeme do vašeho adresáře www soubor .htaccess s našimi výchozími pravidly pro nasměrování subdomén do podadresářů a nasměrování aliasů do podadresářů. Může se však stát, že vám tato naše pravidla nevyhovují, protože potřebujete mít jinak uspořádanou adresářovou strukturu. V takovém případě si můžete napsat pravidla vlastní, v nichž můžete explicitně uvést která doména má skončit ve kterém adresáři.
Pravidla umístěte do souboru .htaccess v adresáři www ve vašem webhostingu.
Příklad 1
Chceme, aby subdoména franta.example.com měla svůj obsah v podadresáři www/franta
RewriteCond %{HTTP_HOST} ^franta.example.com$ RewriteCond %{REQUEST_URI} !^/franta/ RewriteRule (.*) /franta/$1 [L]
První podmínka určuje doménu v URL adrese, druhá podmínka zabraňuje zacyklení přepisovacích pravidel, třetí řádek provede samotné přepsání.
Příklad 2
Chceme-li různé další domény do různých dalších podadresářů, uvedeme tolik pravidel, kolik je potřeba:
RewriteCond %{HTTP_HOST} ^www.nejaky-alias.com$ RewriteCond %{REQUEST_URI} !^/nejaky/adresar/ RewriteRule (.*) /nejaky/adresar/$1 [L] RewriteCond %{HTTP_HOST} ^subdomena.nejake-domeny.com$ RewriteCond %{REQUEST_URI} !^/nejaky/jiny/adresar/ RewriteRule (.*) /nejaky/jiny/adresar/$1 [L]
Příklad 3
Pokud chceme, aby to fungovalo např. pro nějakou doménu s www na začátku i bez toho, můžeme před název bez www uvést (www\.)? – to znamená, že se „www.“ může a nemusí na začátku vyskytovat. Níže uvedené pravidlo tedy bude fungovat pro doménu www.subdomena.nejake.domeny.com i pro subdomena.nejake.domeny.com.
RewriteCond %{HTTP_HOST} ^(www\.)?subdomena.nejake-domeny.com$ RewriteCond %{REQUEST_URI} !^/nejaky/jiny/adresar/ RewriteRule (.*) /nejaky/jiny/adresar/$1 [L]
.htaccess pro instalátor aplikací
Při použití našeho instalátoru aplikací doporučujeme mít náš výchozí /www/.htaccess soubor. V opačném případě vám instalátor bude hlásit „Pravděpodobně nepoužíváte náš výchozí .htaccess„. Po zřízení jej najdete na každém webhostingu, případně jeho obsah uvádíme zde:
# htaccess rules for subdomains and aliases
# to create new subdomain, create a folder www/subdom/(subdomain name)
# to create web for alias, create a folder www/domains/(whole domain name)
# htaccess pravidla pro subdomeny a samostatne weby aliasu
# pro vytvoreni subdomeny vytvorte adresar www/subdom/(nazev subdomeny)
# pro vytvoreni webu pro alias vytvorte adresar www/domains/(cely domenovy nazev)
# dalsi info a priklady: https://kb.wedos.com/cs/webhosting/htaccess/htaccess-na-webhostingu
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]
Pokud máte stále s instalací problémy, zkuste použít řešení známých problémů.
Časté dotazy
Při instalaci aplikace vidím chybu „Pravděpodobně nepoužíváte náš výchozí .htaccess“
Obnovte si náš výchozí .htaccess soubor.