Znalostná báza›Webhosting›Súbor .htaccess

Webhosting – Súbor .htaccess

Na tejto stránkeKedy tento návod použijeteSúbor .htaccessRestore default .htaccessNastavenie .htaccessuObmedzenia .htaccessu na webhostinguBežné problémyČasto kladené otázky

Potrebujete pomoc s webom? Nájdite svojho špecialistu na VEDOS Profi ⧉.

V tomto článku sa dozviete:


Kedy tento návod použijete

Tento návod použite napríklad v týchto situáciách:

  • Subdoména alebo ďalšia doména zobrazuje obsah hlavného webu, alebo odkazy vedú na adresy s /domains/. Pozrite Subdoména zobrazuje iný web.
  • Po úprave súboru .htaccess sa zobrazuje Internal Server Error alebo Too Many Redirects. Pozrite Nové nastavenie nefunguje.
  • Bezpečnostný plugin WordPressu hlási chybu open_basedir restriction in effect pri súbore .htaccess. Pozrite Plugin hlási open_basedir.
  • Potrebujete vrátiť predvolený súbor .htaccess, pretože ste ho zmazali alebo pokazili, alebo zakladáte nový web na mieste starého. Postup nájdete v kapitole Restore default .htaccess.
  • Chcete vynútiť HTTPS, presmerovať starú adresu alebo obmedziť prístup podľa IP adresy. Pozrite Nastavenie .htaccessu.
  • Web, napríklad editor stránok, načítava skripty nestabilne. Môžete skúsiť vypnúť proxy cache.

Súbor .htaccess

Súbor .htaccess (na začiatku musí byť bodka) obsahuje nastavenia servera Apache, ktoré riadia prevádzku webhostingu. Medzi najčastejšie využitie patrí smerovanie v adresárovej štruktúre webhostingu, vynútenie HTTPS, presmerovanie webových adries a vypnutie proxy cache.

Prístup k súboru .htaccess

Na prístup k súboru .htaccess postupujte takto:

  1. Prihláste sa k hostingu cez FTP, napríklad klientom WebFTP ⧉ (Manual).
  2. Vstúpte do priečinka www.
  3. Medzi súbormi nájdite súbor s názvom .htaccess.
WebFTP - Súbor .htaccess v priečinku www
WebFTP – Súbor .htaccess v priečinku www

Pravidlá v predvolenom .htaccesse sa vzťahujú na všetky weby. Pravidlá v súboroch .htaccess v iných adresároch (často napríklad www/domains/domena.tld) sa vzťahujú iba na obsah daného adresára a všetkých jeho podadresárov.

Súborov .htaccess môžete mať viac ako jeden – záleží od počtu adresárov, v ktorých chcete nastaviť špecifické pravidlá.


Restore default .htaccess

Ak sa Vám nedarí nájsť príčinu chyby spôsobenej upraveným predvoleným súborom .htaccess, alebo ste tento súbor nedopatrením zmazali, môžete ho obnoviť priamo v zákazníckej administrácii.

  1. Prihláste sa do zákazníckej administrácie ⧉.
  2. V hornej ponuke vyberte Hosting Services Webhosting alebo WMS.
  3. Vyberte webhosting, pri ktorom chcete súbor .htaccess obnoviť.
  4. V ľavom menu kliknite na Tools.
  5. V tabuľke Restore default .htaccess kliknite na tlačidlo Restore .htaccess.
Tlačidlo na obnovenie predvoleného súboru .htaccess
Tlačidlo na obnovenie predvoleného súboru .htaccess

Súčasne s obnovením predvoleného súboru .htaccess týmto tlačidlom vytvoríte zálohu existujúceho súboru, ktorý systém skopíruje do rovnakého priečinka.

Tlačidlo obnovuje iba súbor .htaccess v priečinku www. Iné súbory .htaccess, napríklad tie vytvorené redakčnými systémami, musíte obnoviť iným spôsobom.

Predvolený súbor .htaccess neobsahuje pravidlá pre HTTPS. Ak HTTPS používate, pridajte pravidlá do obnoveného súboru ručne.

Nastavenie .htaccessu

Podmienky a príkazy v súbore .htaccess používajú regulárne výrazy. Ak ich neovládate, môžete súbor napriek tomu upravovať, ale venujte zvýšenú pozornosť návodu. Nefunkčný .htaccess spôsobuje chybu 500 – Internal Server Error.

Skôr než začnete súbor .htaccess upravovať, vytvorte si jeho zálohu.

V tejto kapitole nájdete návody na:

Smerovanie v adresárovej štruktúre Webhostingu

Hlavným účelom nášho predvoleného súboru .htaccess je nasmerovať požiadavky do správnych priečinkov Webhostingu, najmä domains a subdom. Ak pozorujete chyby v navigácii do adresárov, opravte súbor .htaccess tak, aby obsahoval nasledujúci text, prípadne ho úplne obnovte.

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]

Nastavenie HTTPS

Pri aktivácii HTTPS okrem iného nastavujete pravidlo .htaccess, ktoré variantu s HTTPS vyberá ako predvolenú. Nastavte ho priamo v súbore .htaccess v priečinku www, bezprostredne pod riadok RewriteEngine On.

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
Header set Content-Security-Policy "upgrade-insecure-requests;"

Pridanie tohto kódu môže spôsobiť zablokovanie nášho inštalátora aplikácií. Ak pri inštalácii narazíte na problém so súborom .htaccess, dočasne ho obnovte a po úspešnej inštalácii ho opäť prepíšte automaticky vytvorenou zálohou.

Predvolený súbor .htaccess pravidlá pre HTTPS neobsahuje. Ak ste ho obnovili a chcete pravidlá pre HTTPS používať, pridajte ich znova.

Presmerovanie URL

Nasledujúcim pravidlom, známym ako presmerovanie 301, hovoríte prehliadaču aj vyhľadávačom, že stránka sa definitívne presunula zo starej adresy na novú. Najmä vyhľadávače potom nebudú vnímať presunutý obsah ako duplicitný.

Skopírujte text nižšie a vložte do súboru .htaccess pod riadok RewriteEngine On. Ďalej ho upravte podľa týchto pravidiel:

  1. V texte staraadresa\.tld nahraďte text staraadresa adresou, z ktorej presmerovanie prebieha, a tld nahraďte správnou koncovkou. Uistite sa, že pred znakom . (bodkou) je znak \ (spätná lomka).
  2. V texte http://novaadresa.tld nahraďte novaadresa.tld adresou, na ktorú web presmerovávate. Ak nová adresa používa https, prepíšte aj text http.
  3. Ak chcete presmerovávať na predvolenú stránku novej adresy, zmažte na druhom riadku znaky $1.
RewriteCond %{HTTP_HOST} ^(www\.)?staraadresa\.tld$
RewriteRule (.*) http://novaadresa.tld/$1 [R=301,L]

Obmedzenie prístupu pre vybrané IP adresy

V súbore .htaccess môžete obmedziť prístup k určitým (alebo všetkým) súborom iba z určitých IP adries. Tu je príklad blokovania prístupu k súboru wp-login.php (prihlasovacia stránka administrácie WordPress):

<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from X.X.X.X
</Files>

Kód môžete upraviť podľa týchto pravidiel:

  • V <Files ___> môžete uviesť buď konkrétny súbor, alebo znak * pre všetky súbory v danom priečinku a podpriečinkoch.
  • Adresu X.X.X.X nahraďte Vašou adresou IPv4 alebo IPv6.
  • Direktívu Allow from X.X.X.X môžete zadať viac, každú na vlastný riadok.

Prístupy k danému súboru z iných IP adries budú končiť chybou 403.

Jediný spôsob, ako získať prístup k súboru z blokovanej adresy, je pridanie tejto adresy do zoznamu povolených alebo vyradenie kódu. Ani jeden z týchto zásahov nevykonáva Support.

Vypnutie proxy cache

Ak potrebujete pri webe alebo jeho časti (adresári, subdoméne) vypnúť proxy cache, vložte do súboru .htaccess tento kód:

# DISABLE CACHING
<IfModule mod_headers.c>
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0
</IfModule>

Obmedzenia .htaccessu na webhostingu

Aby sme zabránili nežiaducemu správaniu servera, nastavili sme súboru .htaccess určité obmedzenia.

Použitím akéhokoľvek nepovoleného príkazu alebo parametra pri príkaze Options spôsobíte nefunkčnosť celého webu, ktorá sa prejaví chybou 500 – Internal Server Error.

V konfigurácii webservera smiete používať nasledujúce kategórie príkazov pre htaccess:

  • AuthConfig
  • FileInfo
  • Limit
  • Indexes
  • Options*

Vyhnite sa používaniu príkazov:

  • php_flag
  • php_value
  • ServerSignature
  • SetEnv
  • SetHandler
  • XBitHack
  • AddHandler
  • Options*

* Pri príkaze Options smiete používať iba voľbu Indexes, ostatné sú zakázané.


Bežné problémy

Medzi bežné problémy so súborom .htaccess patrí:

Nové nastavenie nefunguje

Problém: Po zmene nastavenia .htaccessu sa nové správanie neprejavuje, alebo web prestal fungovať úplne. Najčastejšie sem patria chyby Internal Server Error a Too Many Redirects.

Príčina: Môže ísť o chybu v pomenovaní alebo umiestnení súboru .htaccess, v umiestnení kódu v tomto súbore alebo v jeho správnosti.

Riešenie: Vykonajte dôkladnú kontrolu a opravte chyby:

  1. Skontrolujte, že sa súbor nachádza v správnom priečinku (nemusí to byť iba www) a volá sa presne .htaccess, vrátane bodky na začiatku.
  2. Uistite sa, že kód je umiestnený na správnom mieste súboru (napríklad na začiatku za príkazom RewriteEngine On), a že všetky časti, ktoré obsahovali zástupný text (napr. domena.tld) sú nahradené správnym textom.
  3. Ak súbor obsahuje blokované príkazy, vyraďte dané riadky umiestnením znaku # na začiatok riadka.

Obnova predvoleného .htaccessu nefunguje

Problém: Po obnovení predvoleného .htaccessu sa web správa stále rovnako.

Príčina: Buď obnovujete nesprávny .htaccess, alebo je nesprávne zobrazenie webu cachované.

Riešenie: Obnovte stránku bez cache prehliadača klávesovou skratkou Ctrl+Shift+R.

Ak potrebujete obnoviť predvolený stav súboru .htaccess inde než v priečinku www (alebo .htaccess redakčného systému, napríklad WordPressu), získajte ho zo zálohy alebo webových stránok redakčného systému.

Neznámy program prepisuje .htaccess

Problém: Po zmene nastavenia .htaccessu ho niečo vzápätí prepíše nežiaducim kódom.

Príčina: Na webhostingu je umiestnený softvér (väčšinou plugin, môže ísť aj o malvér), ktorý do súboru .htaccess generuje vlastný kód.

Riešenie: Vyhľadajte pôvodcu zmien v súbore .htaccess:

  1. Bezpečnostné pluginy väčšinou pomocou .htaccessu blokujú prístup na citlivé miesta systému, napríklad do administrácie redakčného systému. Pri pokuse o prístup potom často pozorujete chybu 403: Forbidden. Riešením je prenastavenie alebo vypnutie daného bezpečnostného pluginu.
  2. Aktualizácie redakčného systému môžu do svojho .htaccessu zaviesť problematický kód, ktorý najčastejšie spôsobuje chybu 500 – Internal Server Error. Riešením je vypnutie automatických aktualizácií a rýchly zásah do kódu .htaccessu bezprostredne po manuálnej aktualizácii.
  3. Malvér bežne narúša zobrazenie stránky alebo ju presmerováva na nežiaduce URL. Riešením je dôkladné odvírenie webu, ktoré VEDOS bohužiaľ nezabezpečuje ani k nemu neposkytuje podporu.

Subdoména zobrazuje iný web

Problém: Subdoména alebo ďalšia doména zobrazuje hlavný web, hlavnú stránku, alebo odkazy vedú na adresy s /domains/, aj keď máte web nahraný v správnom priečinku.

Príčina: Súbor .htaccess v priečinku www nesmeruje požiadavky do priečinkov domains a subdom, alebo ho iný súbor .htaccess v adresári webu prebíja. Častá je aj nesprávna adresa webu v nastavení redakčného systému (v databáze je adresa hlavnej domény namiesto subdomény).

Riešenie: V priečinku www obnovte predvolený súbor .htaccess, prípadne vložte kód zo smerovania v adresárovej štruktúre. Skontrolujte adresárovú štruktúru podľa článkov Webhosting – Subdomény a Webhosting – Obnova adresárovej štruktúry (reset) FTP. V redakčnom systéme overte, že má v nastavení adresu subdomény. Nakoniec obnovte stránku bez cache prehliadača klávesovou skratkou Ctrl+Shift+R.

Plugin hlási open_basedir

Problém: Bezpečnostný plugin WordPressu (napr. Wordfence alebo Really Simple Security) hlási open_basedir restriction in effect. File(/.htaccess) is not within the allowed path.

Príčina: Príkaz open_basedir je na webhostingu z bezpečnostných dôvodov zablokovaný, plugin preto súbor .htaccess upraviť nemôže.

Riešenie: Vráťte súbor .htaccess WordPressu do predvolenej podoby podľa dokumentácie WordPressu. Ak nefunguje prístup cez WebFTP, pripojte sa desktopovým FTP klientom, napríklad FileZillou. Ďalší postup je opísaný v kapitole Neznámy program prepisuje .htaccess.


Často kladené otázky

Ako obnovím predvolený .htaccess redakčného systému?

Skôr než začnete súbor .htaccess upravovať, vytvorte jeho zálohu. Ak ju nemáte, buď redakčný systém preinštalujte, alebo vyhľadajte predvolený obsah .htaccess rovnakej verzie CMS inde. Ak všetko ostatné zlyhá, kontaktujte zákaznícku podporu.

Kde nájdem pokročilé príkazy .htaccess?

Pre pokročilé príkazy .htaccess neposkytujeme podporu. Niektoré nájdete v komunitných článkoch v kategórii .htaccess ⧉. Pri návodoch vyhľadaných online majte na pamäti obmedzenia .htaccessu na Webhostingu.

Nemám prístup cez WebFTP. Opraví súbor .htaccess Support?

Najprv skúste pripojenie desktopovým FTP klientom, napríklad FileZillou. Ak trváte na oprave z našej strany, sprístupnite Supportu dočasný FTP prístup a pošlite žiadosť cez kontaktný formulár ⧉.

Web nestabilne načítava skripty. Pomôže vypnutie proxy cache?

Môže, ale nie je to isté. Vložte do súboru .htaccess kód z kapitoly Vypnutie proxy cache. Ak to nepomôže, vráťte nastavenie do pôvodného stavu.

Pomohol vám tento článok?

Vaše hodnotenie nám pomáha zlepšovať naše články.

Vašu správu si prečíta tím tvorcov dokumentácie, ale neodpovedá na ňu. Ak potrebujete poradiť, kontaktujte nás pomocou kontaktného formulára. Nezadávajte sem heslá ani osobné údaje.

Nenašli ste, čo hľadáte?

Opýtajte sa ostatných zákazníkov na komunitnom webe Help.