htaccess – nasměrování do podadresáře

  htaccess, Nastavení, Webhosting

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.

Byl pro Vás tento návod užitečný?