Doporučené nástroje

Funkční .htaccess pro Wedos

21.9.2013 4 min čtení

Funkční .htaccess pro Wedos

Reading Time: 4 minutes

S přechodem na hosting Wedos vás může potkat, že vám přestane fungovat .htaccess soubor, na který jste zvyklí. Jsou to takové známé problémy typu nefunkčních podstránek, pouze homepage a podobně. Na úvod musím říct, že tomu souboru vůbec nerozumím, a že mé kodérské schopnosti se zmůžou jen na copy paste. Za ty roky, co weby dělám, jsem si ale přizpůsobil .htaccess hostingu Wedos jak pro html weby, tak i pro WordPress. Možná by šli napsat líp, možná jsou tam některé věci dvakrát, ale fungují. Někomu se můžou hodit.

Jsou nastaveny tak, že se vypořádají s lomítkem na konci, a mažou www variantu a přesměrovávají ji na bez www (ve WordPress případě tohle nastavujete přímo v instalaci).

.htaccess pro WordPress weby na Wedosu:

# 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: http://kb.wedos.com/r/32/webhosting-htaccess.html

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]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

.htaccess pro HTML weby na Wedosu:

Tady vždy ručně napíšu konkrétní doménu na začátek. Určitě tam jde dát nějaké obecné pravidlo, abych to dělat nemusel, ale už jsem po tom nepátral, když jsem to zprovoznil.

# 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: http://kb.wedos.com/r/32/webhosting-htaccess.html

RewriteEngine On

#z www na bez www
RewriteCond %{HTTP_HOST} ^www\.vasedomena\.cz [nc]
RewriteRule (.*) http://vasedomena.cz/$1 [R=301,L]

RewriteRule ^(.*)\/(\?.*)?$ /$1$2 [R=301]

# 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]

#example.com/page will display the contents of example.com/page.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]

#301 from example.com/page.html to example.com/page
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]

Kód stačí zkopírovat bez formátování do textového souboru, přejmenovat na .htaccess (včetně tečky a bez koncovky .txt) a takový soubor pak hodit do hlavního adresáře webu.

HTTPS .htaccess na Wedosu

Https řeším tak, že dám následující .htaccess soubor do hlavního adresáře /WWW/ (nikoliv tedy do jednotlivých adresářů samotných webů):

# 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: http://kb.wedos.com/r/32/webhosting-htaccess.html

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]

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Doplnění 2019:

Wedos mám docela rád. Má své mouchy, podpora je jistě lepší u kdejakého konkurenta, ale jinak mi dlouhodobě vyhovuje. Je znát, že se dobře vyvíjí různé ochrany proti útokům, rychlost a podobně. Líbí se mi, jak inovují a přichází s novými nápady. Wedos je dnes o hodně dál, než když jsem s ním začínal. A to už je pěkných pár let.

Krátkodobě vždy někdo vychválí konkrétního konkurenta, já třeba i zvažuju změnu, ale všímám si, že za ty roky lidé vychvalují pokaždé jiného konkurenta. Stabilní partner se těžko hledá. Pár jich ale jistě bude (pochopitelně za jinou cenu).

7 komentářů
  1. Dusi

    Právě reportované problémy s htaccess u Wedos mě zatím odrazují od hostování u něj a platím si o málo dražší multihosting jinde, zato s perfektní podporou přes chat anebo mail.

  2. Dan Péder

    .htacces musí makat všude stejně, hosting na něj nemůže mít vliv, problémy nastanou když je blbě napsaný, buď nekonečná smyčka, náročný výpočet nebo to dělá něco jiného než jsme čekali kdo potřebuje vyladit .htacces ať se ozve, perfektně ho umím

    • Maigi

      Wedos má specificky řešené aliasy, pro které má vlastní htaccess, aby se web choval korektně. Pokud řešíš adresy url po svém, nebo je řeší wordpress, máš problém na světě.

    • Jiří Samuel

      Mohli byste mi, prosím, poradit, jak udělat trvalé přesměrování. Například u tohoto příkladu, kdy původní url rubriky byla zrušena (původní) url: /category/kultura/film. Nyní mám rubriku na novém url: http://radyzezivota.cz/category/kultura/filmove-tipy. Můžete mi napsat jak přesně má vypadat kód přesměrování, který vložím do .htacces včetně kódu pro aktivaci přesměrování. Prosím ještě o vysvětlení, kam celý ten kód vložit. V souboru .htacces mám již nějaké záznamy. Děkuji moc. Samuel

  3. Anna

    Dobrý den, mnohokrát vám děkuju za tenhle článek. Při přechodu na HTTPS mi přestaly fungovat podstránky a strávila jsem různými pokusy a googlením několik hodin. Váš kód zafungoval. :)

  4. Chorus

    Bůh ti žehnej chlape. Kvůli přechodu na Wedos jsem týden nespal. Díky tobě problém vyřešen za 5 vteřin :)))

Komentovat

Vaše e-mailová adresa nebude zveřejněna.