2020 Kompletní průvodce. HTACCESS – od základů k pokročilému učení

Zveřejnění: Vaše podpora pomáhá udržovat provoz webu! Za některé služby, které na této stránce doporučujeme, dostáváme poplatek za doporučení.


Pomocí souboru .htaccess můžete ovládat mnoho aspektů webového serveru Apache (a jeho mnoha variant). Níže se dozvíte vše, co potřebujete vědět, nastavit speciální chybové stránky, adresáře chráněné heslem, přesměrovat a mnoho dalšího.

Contents

Jak používat tuto příručku

Tato příručka byla vytvořena, aby sloužila jako komplexní zdroj pro použití .htaccess. Pokud jste s používáním .htaccess úplně nového – možná budete chtít začít s první kapitolou „.htaccess Basics“ níže.

Pokud hledáte konkrétní ukázky kódu nebo výukové programy, podívejte se na navigaci na pravé straně této stránky a přeskočte přímo na dílčí sekce na této stránce..

.Základy htaccess

Seznamte se s některými základními prvky úspěchu, než se potopíte do příkazů.

Co je to?

Soubor .htaccess je konfigurační soubor, který řídí, jak webový server odpovídá na různé požadavky. Je podporováno několika webovými servery, včetně populárního webového serveru Apache, který používá většina komerčních poskytovatelů webhostingu.

.Soubory htaccess fungují na úrovni adresáře, což jim umožňuje přepsat globální nastavení konfigurace směrnic .htaccess výše ve stromu adresářů.

Jak se používá?

Mezi běžná použití .htaccess patří přesměrování URL, umožnění ochrany heslem pro webové stránky (nebo webové stránky); zobrazení vlastních chybových stránek (například 404 stránek); a posílení SEO prostřednictvím důsledné koncové lomítko.

V druhém případě se webmaster může rozhodnout, že bude vyžadovat koncové slashe na konci každé adresy URL na webu, nebo ne.

Proč se tomu říká?

.htaccess znamená „hypertextový přístup“. Název je odvozen od původního použití nástroje, kterým bylo řídit přístup uživatelů k určitým souborům na základě jednotlivých adresářů.

Pomocí podsady směrnic pro nastavení http.conf Apache, .htaccess umožnil správci systému omezit přístup k jednotlivým adresářům na uživatele se jménem a heslem zadaným v průvodním souboru .htpasswd.

I když se pro to stále používají soubory .htaccess, používají se také pro řadu dalších věcí, které budeme v této příručce popisovat..

Kde je .htaccess soubor?

Teoreticky by každá složka (adresář) na vašem serveru mohla mít jednu. Obecně však existuje ve vaší webové kořenové složce – to je složka, která obsahuje veškerý obsah vašeho webu, a obvykle je označena jako public_html nebo www..

Pokud máte jediný adresář, který obsahuje více podadresářů webových stránek, bude obvykle v hlavním kořenovém adresáři (public_html) existovat soubor .htaccess a v každém podadresáři (/ sitename) také jeden..

Proč nemohu najít svůj .htaccess soubor?

Ve většině systémů souborů jsou názvy souborů, které začínají tečkou (.), Skryté soubory. To znamená, že nejsou standardně viditelné.

Ale není těžké se k nim dostat. Váš FTP klient nebo Správce souborů by měl mít nastavení pro „zobrazit skryté soubory“. Bude to na různých místech různých programů, ale obvykle je to v „Předvolbách“, „Nastavení“ nebo „Možnosti složky“. Někdy ji najdete v nabídce „Zobrazit“.

Co když nemám soubor .htaccess?

Nejprve se ujistěte, že jste zapnuli možnost „zobrazit skryté soubory“ (nebo její ekvivalent), abyste si mohli být jisti, že jej skutečně nemáte. Soubory .htaccess jsou často vytvářeny automaticky, takže je obvykle budete mít. Ale není tomu tak vždy.

Pokud jej opravdu nemáte, můžete jej snadno vytvořit:

  • Spusťte nový soubor v textovém editoru.
  • Uložte jej ve formátu ASCII (nikoli UTF-8 nebo cokoli jiného) jako .htaccess.
    • Ujistěte se, že to není htaccess.txt nebo něco podobného. Soubor by měl mít pouze název .htaccess bez další přípony souboru.
  • Nahrajte jej do příslušného adresáře pomocí FTP nebo vašeho správce souborů založeného na prohlížeči.

Vypořádání se s chybou

Použití souborů .htaccess k určení chybových dokumentů je velmi jednoduché, jedna z nejjednodušších věcí, které můžete s touto funkcí dělat.

Co je to kód chyby?

Když je požadavek podán na webový server, pokusí se odpovědět na tento požadavek, obvykle doručením dokumentu (v případě stránek HTML) nebo přístupem k aplikaci a vrácením výstupu (v případě systémů pro správu obsahu a další webové aplikace).

Pokud se s tím něco pokazí, dojde k chybě. Různé typy chyb mají různé chybové kódy. Pravděpodobně jste obeznámeni s chybou 404, která se vrací, pokud nelze dokument najít na serveru.

Existuje mnoho dalších kódů chyb, se kterými může server reagovat.

Chyby požadavku klienta

  • 400 – Špatný požadavek
  • 401 – Vyžaduje se autorizace
  • 402 – Vyžaduje se platba (dosud nebyla použita)
  • 403 Přístup odepřen
  • 404 nenalezeno
  • 405 – Metoda není povolena
  • 406 – Nepřijatelné (kódování)
  • 407 – Je vyžadováno ověření proxy
  • 408 – Vypršel časový limit požadavku
  • 409 – Konfliktní žádost
  • 410 – Pryč
  • 411 – Požadovaná délka obsahu
  • 412 – Předpoklad se nezdařil
  • 413 – Žádost o entitu je příliš dlouhá
  • 414 – Žádost URI je příliš dlouhá
  • 415 – Nepodporovaný typ média.

Chyby serveru

  • 500 – Interní chyba serveru
  • 501 – není implementováno
  • 502 – Bad Gateway
  • 503 služba nedostupná
  • 504 – Timeout brány
  • 505 – Verze HTTP není podporována.

Výchozí zpracování chyb

Pokud nezadáte žádný typ zpracování chyb, server jednoduše zprávu vrátí do prohlížeče a prohlížeč uživateli zobrazí obecnou chybovou zprávu. To obvykle není ideální.

Zadání chybových dokumentů

Vytvořte dokument HTML pro každý kód chyby, který chcete zpracovat. Můžete je pojmenovat, co se vám líbí, ale je užitečné pojmenovat je, co vám pomůže zapamatovat si, pro co jsou, jako nenalezeno.html nebo jednoduše 404.html.

Poté v souboru .htaccess určete, který dokument se použije s každým typem chyby.

ErrorDocument 400 /errors/bad-request.html
ErrorDocument 401 /errors/auth-reqd.html
ErrorDocument 403 /errors/forbid.html
ErrorDocument 404 /errors/not-found.html
ErrorDocument 500 /errors/server-err.html

Všimněte si, že každá směrnice je umístěna na svém vlastním řádku.

A to je vše. Velmi jednoduché.

Alternativy k .htaccess pro zpracování chyb

Většina systémů pro správu obsahu (CMS), jako jsou WordPress a Drupal, a většina webových aplikací, budou mít svůj vlastní způsob zpracování většiny těchto chybových kódů.

Ochrana heslem pomocí .htaccess

Původním účelem souborů .htaccess bylo omezit přístup k určitým adresářům podle jednotlivých uživatelů (odtud název, hypertextový přístup). Nejprve se na to podíváme.

.htpasswd

Uživatelská jména a hesla pro systém .htaccess jsou uložena v názvu souboru .htpasswd.

Jsou uloženy na jednom řádku ve tvaru:

uživatelské jméno: šifrované heslo

například:

johnsmith: F418zSM0k6tGI

Je důležité si uvědomit, že heslo uložené v souboru není skutečné heslo použité k přihlášení. Spíše je to kryptografické hašování hesla.

To znamená, že heslo bylo spuštěno pomocí šifrovacího algoritmu a výsledek je uložen. Když se uživatel přihlásí, heslo prostého textu se zadá a spustí se stejným algoritmem. Pokud je vstup stejný, hesla se shodují a uživateli je udělen přístup.

Ukládání hesel tímto způsobem je činí bezpečnějšími – pokud by někdo měl získat přístup k vašemu souboru .htpasswd, uvidí pouze hashovaná hesla, nikoli originály. A neexistuje žádný způsob, jak rekonstruovat originály z hashe – je to jednosměrné šifrování.

Lze použít několik různých hashovacích algoritmů:

  • Zabezpečené algoritmy – použijte jeden z těchto
    • bcrypt – Toto je nejbezpečnější, ale také nejpomalejší výpočet. Je podporován Apache a Nginx.
    • md5 – Toto je výchozí hashovací algoritmus používaný současnými verzemi Apache. Nginx to nepodporuje.
  • Nejisté algoritmy – nepoužívejte je
    • crypt () – Toto byla výchozí hashovací funkce, ale není příliš bezpečná.
    • SHA a solené SHA.

Vytváření uživatelských jmen a hesel na příkazovém řádku

Můžete vytvořit soubor .htpasswd a přidat do něj páry uživatelských jmen a hesel přímo z příkazového řádku nebo z terminálu SSH..

Příkaz pro práci se souborem .htpasswd je jednoduše htpasswd.

Chcete-li vytvořit nový soubor .htpasswd, použijte příkaz s volbou -c (pro vytvoření) a potom zadejte cestu k adresáři (nikoli URL, skutečná cesta na serveru). Můžete také přidat uživatele, kterého chcete přidat.

> htpasswd -c /usr/local/etc/.htpasswd johnsmith

Tím se vytvoří nový soubor .htpasswd v adresáři / etc / a přidá se záznam pro uživatele s názvem johnsmith. Budete vyzváni k zadání hesla, které bude také uloženo pomocí šifrování md5.

Pokud na zadaném umístění již existuje soubor .htpasswd, nový se nevytvoří – nový uživatel se jednoduše připojí k existujícímu souboru.

Pokud chcete použít algoritmus hashování bcrypt, použijte volbu -b.

Hashing hesla bez příkazového řádku

Pokud se necítíte dobře pomocí příkazového řádku nebo terminálu SSH (nebo pokud k němu nemáte z nějakého důvodu přístup), můžete jednoduše vytvořit soubor .htpasswd a naplnit jej pomocí prostého textového editoru a nahrát jej přes FTP nebo správce souborů.

Ale pak budete muset nějakým způsobem zašifrovat vaše hesla, protože příkaz htpasswd se o to postaral za vás.

Existuje mnoho utilit šifrování .htpasswd online. Nejlepší z nich je pravděpodobně htpasswd generátor na Aspirine.org.

Tím získáte několik možností pro algoritmus hashování a sílu hesla. Můžete jednoduše zkopírovat a vložit výstup odtud do svého souboru .htpasswd.

Kde si můžete uložit svůj soubor .htpasswd

Pro každý soubor .htaccess nemusíte mít samostatný soubor .htpasswd. Ve skutečnosti byste to neměli. Za většiny běžných okolností byste měli mít jeden pro celý webový účet hostingu nebo hlavní adresář serveru.

Soubor .htpasswd by neměl být ve veřejně přístupném adresáři – ne public_html nebo www nebo v jakémkoli podadresáři. Měl by být nad těmi, ve složce, která je přístupná pouze ze samotného serveru.

Jak používat .htpasswd s .htaccess

Každý adresář může mít svůj vlastní soubor .htaccess s vlastní sadou uživatelů, kteří k němu mají přístup.

Pokud chcete, aby k adresáři a jeho souborům přistupoval kdokoli (včetně nepřihlášených uživatelů), jednoduše nedělejte nic – to je výchozí.

Chcete-li omezit přístup, musíte do souboru .htaccess přidat následující položky:

AuthUserFile /usr/local/etc/.htpasswd
AuthName "Název zabezpečené oblasti"
AuthType Basic

vyžadují platného uživatele

První řádek určuje cestu a název souboru do seznamu uživatelských jmen a hesel. Druhý řádek určuje název zabezpečené oblasti. To může být cokoli, co se vám líbí. Třetí řádek uvádí „Základní“ autentizaci, což obvykle potřebujete.

Značka určuje, co je omezeno (v tomto případě schopnost GET nebo POST na libovolný soubor v adresáři). Ve dvojici značek je uveden seznam těch, kteří mají přístup k souborům.

Ve výše uvedeném příkladu má přístup k souborům každý platný uživatel. Pokud chcete omezit přístup k určitému uživateli nebo několika uživatelům, můžete je pojmenovat.

AuthUserFile /usr/local/etc/.htpasswd
AuthName "Název zabezpečené oblasti"
AuthType Basic

vyžadují uživatele johnsmith
vyžadují uživatele janedoe

Můžete také uživatele zařadit do skupin a povolit přístup na základě skupiny. To se provádí přidáním jiného souboru, který určuje skupiny.

Soubor skupiny, který lze pojmenovat (například) .htgroups vypadá takto:

admin: johnsmith janedoe
zaměstnanci: jackdoe cindysmith

Potom jej můžete určit v souboru .htaccess:

AuthUserFile /usr/local/etc/.htpasswd
AuthGroupFile /usr/local/etc/.htgroup
AuthName "Oblast administrace"
AuthType Basic

vyžadovat skupinového administrátora

Alternativy k .htpasswd

Použití .htaccess a .htpasswd k omezení přístupu k určitým souborům na vašem serveru má opravdu smysl, pouze pokud máte mnoho statických souborů. Tato funkce byla vyvinuta, když weby byly obvykle sbírkou dokumentů HTML a souvisejících zdrojů.

Pokud používáte systém pro správu obsahu (CMS), jako je WordPress nebo Drupal, můžete pomocí vestavěných funkcí správy uživatelů omezit nebo udělit přístup k obsahu.

Povolení zahrnutí na straně serveru (SSI)

Nyní se naučíme, co serverová stránka zahrnuje a jak je můžete použít.

Co zahrnuje serverová stránka?

SSI neboli Server Side Includes je lehký skriptovací jazyk používaný primárně k vkládání HTML dokumentů do jiných HTML dokumentů. To usnadňuje opětovné použití běžných prvků, jako jsou záhlaví, zápatí, postranní panely a nabídky. Můžete to považovat za předchůdce dnešních systémů šablonování a správy obsahu.


SSI má také podmíněné příkazy (pokud, atd.) A proměnné, což z něj činí kompletní, i když poněkud obtížně použitelný, skriptovací jazyk. (Každý projekt, který je složitější než hrstka, obvykle způsobí, že si vývojář vybere robustnější jazyk, jako je PHP nebo Perl.)

Povolení SSI

Některé servery webhostingu budou mít ve výchozím nastavení povoleny serverové zahrnutí. Pokud ne, můžete jej povolit pomocí svého souboru .htaccess, například:

AddType text / html .shtml
AddHandler analyzovaný server .shtml
Indexy voleb FollowSymLinks Zahrnuje

To by mělo umožnit SSI pro všechny soubory, které mají příponu .shtml.

SSI v souborech .html

Pokud chcete povolit analýzu SSI v souborech .html, můžete přidat direktivu, která zajistí, že:

AddHandler analyzovaný server .html

Výhodou je to, že můžete používat SSI, aniž byste světu věděli, že jej používáte. Pokud v budoucnu změníte implementace, můžete si ponechat přípony souborů .html.

Nevýhodou je, že každý .html soubor bude analyzován s SSI. Pokud máte mnoho souborů .html, které ve skutečnosti nepotřebují žádné analýzy SSI, může to přinést spoustu nepotřebných režijních nákladů na server, zpomalit časy načítání stránky a využívat zdroje CPU..

SSI na vaší indexové stránce

Pokud nechcete analyzovat všechny soubory .html, ale chcete použít SSI na své domovské stránce, musíte to určit v souboru .htaccess..

Důvodem je to, že když webový server hledá indexovou stránku adresáře, hledá index.html, pokud tomu neřeknete jinak..

Pokud nechcete analyzovat soubory .html, budete potřebovat, aby byla vaše indexová stránka pojmenována index.shtml, aby SSI fungovalo, a váš server to ve výchozím nastavení nehledá..

Chcete-li to povolit, jednoduše přidejte:

DirectoryIndex index.shtml index.html

Webový server upozorní, že soubor index.shtml je hlavním indexovým souborem pro adresář. Druhý parametr index.html je záloha, v případě, že index.shtml nelze najít.

IP Blacklisting a IP Whitelisting

Můžete použít .htaccess k blokování uživatelů z konkrétní IP adresy (blacklisting). To je užitečné, pokud jste identifikovali jednotlivé uživatele z konkrétních IP adres, které způsobily problémy.

Můžete také udělat obrácení, blokovat všechny kromě návštěvníků z konkrétní IP adresy (whitelisting). To je užitečné, pokud potřebujete omezit přístup pouze na schválené uživatele.

Zakázání podle IP

Chcete-li zablokovat konkrétní adresy IP, použijte následující směrnici a příslušné adresy IP:

objednávka dovolit, popřít
popřít od 111.22.3.4
popřít od 789,56,4.
dovolit ze všech

První řádek uvádí, že direktivy povolit budou vyhodnoceny jako první, před direktivami o odmítnutí. To znamená, že povolit ze všech bude výchozí stav, a pak budou odmítnuty pouze ty, které vyhovují direktivám o odmítnutí.

Pokud by to bylo obráceno, aby bylo možné zakázat, povolit, pak by poslední hodnocenou věcí bylo povolení ze všech směrnic, které by umožnilo všem, aby potlačilo tvrzení odmítnutí.

Všimněte si třetího řádku, který popřel 789.56.4. – to není úplná IP adresa. Tím zakážete všechny adresy IP v tomto bloku (všechny začínající číslem 789.56.4)..

Můžete zahrnout tolik IP adres, kolik chcete, jednu na každém řádku s odepřením direktivy.

Whitelisting by IP

Zadní strana černé listiny je whitelisting – omezuje všechny kromě těch, které určíte.

Jak můžete hádat, směrnice o pokynech musí být obrácena, aby byl všem nejprve odepřen, ale pak jsou povoleny určité adresy.

zakázat, dovolit
popírat ze všeho
povolit od 111.22.3.4
povolit od 789,56,4.

Blokování akcí

.htaccess lze použít k blokování uživatelů podle domény nebo odkazující osoby. A můžete jej použít k blokování robotů a škrabek. Pojďme zjistit jak.

Jak blokovat uživatele podle domény

Můžete také blokovat nebo povolit uživatele na základě názvu domény. To může pomoci lidem zablokovat i při přechodu z adresy IP na adresu IP.

To však nebude fungovat proti lidem, kteří mohou řídit své mapování IP adres reverzního DNS.

objednávka dovolit, popřít
popřít z example.com
dovolit ze všech

Funguje to také pro subdomény – v předchozím příkladu budou blokováni také návštěvníci webu xyz.example.com..

Jak blokovat uživatele odkazujícím

Referrer je web, který obsahuje odkaz na váš web. Když někdo následuje odkaz na stránku na vašem webu, webem, ze kterého přišel, je referrer.

Toto však nefunguje pouze pro hypertextové odkazy, na které lze kliknout, na váš web.

Stránky kdekoli na internetu se mohou odkazovat přímo na vaše obrázky („hotlinking“) – využívají vaši šířku pásma a případně porušují vaše autorská práva, aniž by vám z hlediska provozu přinášely výhody. Mohou také odkazovat na vaše soubory CSS, skripty JS nebo jiné zdroje.

Většina majitelů webových stránek je v pořádku, když se to stane jen trochu, ale někdy se taková věc může změnit v zneužívání.

Navíc jsou někdy skutečné textové odkazy, na které lze kliknout, problematické, například když pocházejí z nepřátelských webů.

Z některého z těchto důvodů můžete chtít blokovat požadavky, které přicházejí od konkrétních doporučení.

K tomu potřebujete modul mod_rewrite povolený. Ve většině webových hostitelů je to ve výchozím nastavení povoleno, ale pokud to není (nebo si nejste jisti), můžete se obvykle zeptat hostitelské společnosti. (Pokud to nemohou nebo neumožní, možná budete chtít přemýšlet o novém hostiteli.)

Direktivy .htaccess, které provádějí blokování na základě doporučení, se spoléhají na modul mod_rewrite.

Kód, který má blokovat referrer, vypadá takto:

PřepsatEngine on
RewriteCond% ^ http: //.*example.com [NC, OR]
RewriteCond% ^ http: //.*anotherexample.com [NC, OR]
RewriteCond% ^ http: //.*onemoreexample.com [NC]
RewriteRule. * – [F]

To je trochu ošidné, a tak to projde.

První řádek, RewriteEngine on, upozorní analyzátor, že přichází řada směrnic týkajících se přepisování.

Další tři řádky blokují jednu odkazující doménu. Část, kterou byste pro vlastní potřebu potřebovali změnit, je název domény (příklad) a přípona (.com)..

Zpětné lomítko před .com je únikový znak. Shoda vzorů použitá v názvu domény je regulární výraz a tečka znamená něco v RegEx, takže musí být „uniknuta“ pomocí zpětného lomítka.

NC v hranatých závorkách uvádí, že shoda by neměla rozlišovat velká a malá písmena. OR je doslovný „nebo“ a znamená, že přicházejí jiná pravidla. (To je – pokud je adresa URL tato nebo tato nebo tato, postupujte podle tohoto pravidla přepsání.)

Poslední řádek je skutečné pravidlo přepisování. [F] znamená „Zakázáno“. Jakékoli požadavky s odkazujícím, které odpovídají požadavkům v seznamu, se nezdaří a zobrazí chybu 403 Zakázáno.

Blokování roboty a škrabky na webu

Jedním z nepříjemnějších aspektů správy webu je zjištění, že vaši šířku pásma pohlcují návštěvníci, kteří nejsou lidmi – roboti, prohledávače, škrabky na webu.

Jedná se o programy, které jsou navrženy tak, aby vytáhly informace z vašeho webu, obvykle za účelem jejich opětovného publikování v rámci nějaké nízkoúrovňové SEO operace.

Tam, samozřejmě, legitimní roboti – jako ti z hlavních vyhledávačů. Ale ostatní jsou jako škůdci, kteří jen sníží vaše zdroje a nepřinášejí vám žádnou hodnotu.

Je identifikováno několik stovek robotů. Nikdy nebudete moci všechny zablokovat, ale aktivitu můžete udržet v temném řevu tím, že zablokujete tolik, kolik můžete.

Existuje užitečná sada přepisovacích pravidel, která blokují přes 400 známých robotů sestavených programem AskApache.

Zadání výchozího souboru pro adresář

Pokud je na webový server podán požadavek na adresu URL, která nespecifikuje název souboru, předpokládá se ve většině webových serverů, že adresa URL odkazuje na adresář.

Pokud tedy požadujete adresu http://example.com, Apache (a většina ostatních webových serverů) se bude podívat v kořenovém adresáři domény (obvykle / public_html nebo něco podobného, ​​ale možná / example-com) pro výchozí soubor.

Výchozí soubor se standardně nazývá index.html. Jde o cestu zpět na začátek internetu, kdy byl web pouze sbírkou dokumentů a „domovská“ stránka byla obvykle indexem těchto dokumentů.

Možná však nebudete chtít, aby byla výchozí stránka index.html. Můžete například potřebovat jiný typ souboru, například index.shtml, index.xml nebo index.php.

Nebo si nemůžete představit svou domovskou stránku jako „index“ a chcete tomu říkat něco jiného, ​​například home.html nebo main.html..

Nastavení výchozí stránky adresáře

.htaccess vám umožňuje snadno nastavit výchozí stránku pro adresář:

DirectoryIndex [název souboru zde]

Pokud chcete, aby byl váš výchozí domov.html, je to stejně snadné jako:

DirectoryIndex home.html

Nastavení více výchozích stránek

Můžete také zadat více než jeden adresář DirectoryIndex:

DirectoryIndex index.php index.shtml index.html

Funguje to tak, že webový server nejprve hledá první server. Pokud to nemůže najít, hledá to druhé a tak dále.

Proč to chcete udělat? Určitě víte, který soubor chcete použít jako výchozí stránku, správně?

Nezapomeňte, že .htaccess ovlivňuje jeho vlastní adresář a každý podadresář, dokud není přepsán lokálním souborem. To znamená, že soubor .htaccess ve vašem kořenovém adresáři může poskytovat pokyny pro mnoho podadresářů a každý z nich může mít svůj vlastní výchozí název stránky.

Možnost umístit tato pravidla do jediného souboru .htaccess v kořenovém adresáři znamená, že nemusíte duplikovat všechny ostatní direktivy v souboru na každé úrovni adresářů..

Přesměrování a přepisování URL

Jedním z nejčastějších použití souborů .htaccess je přesměrování URL.

Přesměrování URL by měla být použita, když se změní URL pro dokument nebo zdroj. To je zvláště užitečné, pokud jste reorganizovali web nebo změnili názvy domén.

Přesměrování 301 vs. 302

Z hlediska prohlížeče existují dva typy přesměrování, 301 a 302. (Tato čísla se vztahují k chybovému kódu generovanému webovým serverem.)

301 znamená „trvale přesunuto“, zatímco 302 znamená „dočasně přesunuto“. Ve většině případů chcete použít 301. Tím se zachová veškerá hodnota SEO, která měla původní URL, a předá ji na novou stránku.

To také způsobí, že většina prohlížečů aktualizuje své záložky. Většina prohlížečů také uloží mezipaměti staré mapování do mezipaměti, takže když se odkaz nebo uživatel pokusí o přístup k původnímu, jednoduše požádají o novou adresu URL. Pokud se adresa URL trvale změnila, jsou to všechny žádoucí výsledky.

Existuje jen velmi málo důvodů k použití 302 přesměrování, protože obvykle existuje velmi malý důvod k dočasné změně adresy URL. Změna adresy URL je někdy nežádoucí, ale někdy je nutná. Dočasná změna, s plánem na pozdější změnu, je špatný nápad a lze se jí téměř vždy vyhnout.

Všechny příklady v této části budou používat přesměrování 301.

Přesměrování vs. přepsat

Existují dva různé způsoby, jak „změnit“ URL pomocí direktiv .htaccess – příkaz Redirect a modul mod_rewrite.

Příkaz Přesměrovat ve skutečnosti odešle přesměrovací zprávu do prohlížeče a řekne jí, jaké další adresy URL hledat.

Nástroj mod_rewrite obvykle převádí jednu adresu URL (tu, která je uvedena v požadavku) na něco, čemu souborový systém nebo systém CMS porozumí, a poté žádost zpracovává, jako by byla přeložená adresa URL požadovanou adresou URL..

Při použití tohoto způsobu si webový prohlížeč nevšimne, že se něco stalo – pouze obdrží obsah, o který žádá.

Nástroj mod_rewrite lze také použít k vytvoření 301 přesměrování, která fungují stejným způsobem jako příkaz Redirect, ale s více možnostmi pro pravidla – mod_rewrite může mít složité instrukce pro přiřazování a přepisování vzorů, které Redirect nemůže využít.

Základní přesměrování stránky

Chcete-li přesměrovat jednu stránku na jinou adresu URL, je tento kód:

Přesměrování 301 /relative-url.html http://example.com/full-url.html

Tento příkaz s jedním řádkem má čtyři části, z nichž každá je oddělena jedním mezerou:

  • Příkaz Přesměrovat
  • Typ přesměrování (301 – trvale přesunuto)
  • Relativní adresa URL původní stránky
  • Úplná a úplná adresa URL nové stránky.

Relativní adresa URL je relativní k adresáři obsahujícímu soubor .htaccess, což je obvykle webový kořen nebo kořen domény..

Pokud by tedy byl http://example.com/blog.php přesunut na http://blog.example.com, kód by byl:

Přesměrujte 301 /blog.php http://blog.example.com

Přesměrování velké části vašeho webu

Pokud jste strukturu adresářů přesunuli, ale názvy stránek zůstaly stejné, můžete přesměrovat všechny požadavky na určitý adresář na nový..

Přesměrování 301 / old-directory http://example.com/new-directory

Přesměrování celého webu

Co když se celý web přesunul na novou adresu URL? Snadný.

Přesměrování 301 / http://newurl.com

Přesměrování www na jiný než www

Webové stránky se stále více vzdalují od subdomény www.

Nikdy to nebylo nutné, ale šlo o pozdržení z doby, kdy většina lidí, kteří provozovali webové stránky, používali server k ukládání velkého množství svých vlastních dokumentů a pro obsah, který chtěli, byl použit adresář www nebo „celosvětový web“. sdílet s ostatními.

V dnešní době to někteří lidé používají a jiní ne. Bohužel někteří uživatelé stále automaticky zadávají www. před každou URL mimo zvyk. Pokud nepoužíváte www, chcete se ujistit, že tyto požadavky dopadnou na správné místo.

Chcete-li to provést, budete muset použít modul mod_rewrite, který je již pravděpodobně nainstalován na vašem webovém hostiteli.

Možnosti + FollowSymlinks
PřepsatEngine on
RewriteCond% ^ www.example.com [NC]
RewriteRule ^ (. *) $ Http://example.org/$1 [R = 301, NC]

Buď opatrný!

Mnoho dalších .htaccess a mod_rewrite průvodců nabízí některé variace následujícího kódu, jak toho dosáhnout:

Možnosti + FollowSymlinks
PřepsatEngine on
RewriteCond%! ^ Example.com [NC]
RewriteRule ^ (. *) $ Http://example.org/$1 [R = 301, NC]

Vidíte problém s tím?

Přesměruje všechny subdomény do primární domény. Takže nejen www.example.com, ale také blog.example.com a admin.example.com a cokoli jiného. To pravděpodobně není chování, které chcete.

Přesměrování na www

Ale co když používáte subdoménu www?

Pravděpodobně byste měli nastavit přesměrování, abyste se ujistili, že se lidé dostanou tam, kam se snaží. Obzvláště nyní, když méně lidí pravděpodobně automaticky přidá tento www na začátek URL.

Stačí jen převrátit výše uvedený kód.

PřepsatEngine zapnuto
RewriteCond% ^ example.com [NC]
RewriteRule ^ (. *) Http://www.website.com/$1 [R = 301, NC]

Mám přesměrovat 404 chyb na domovskou stránku?

Několik průvodců přesměrováním .htaccess obsahuje pokyny, jak přesměrovat chyby 404 na domovskou stránku.

Toto je dobrý příklad toho, jak jen proto, že můžete něco udělat, neznamená to, že byste měli něco dělat.

Přesměrování 404 chyb na domovskou stránku webu je hrozný nápad. Zmatí návštěvníky, kteří nedokážou zjistit, proč vidí přední stránku webu namísto správné 404 chybové stránky..

Všechny weby by měly mít vlastní stránku 404, která uživateli jasně vysvětluje, že obsah nelze najít, a v ideálním případě nabízí některé funkce vyhledávání, které uživateli pomohou najít to, co hledají..

Proč použít .htaccess místo alternativ?

Přesměrování můžete nastavit v souborech PHP nebo pomocí jakéhokoli jiného typu skriptování na straně serveru. Můžete je také nastavit v rámci systému pro správu obsahu (což je v podstatě to samé).

Ale použití .htaccess je obvykle nejrychlejší typ přesměrování. U přesměrování založených na PHP nebo jiných skriptovacích jazyků na straně serveru musí být dokončen celý požadavek a skript skutečně interpretován před odesláním přesměrovací zprávy do prohlížeče.

S přesměrováním .htaccess server odpoví přímo na požadavek pomocí zprávy přesměrování. To je mnohem rychlejší.

Mějte však na paměti, že – některé systémy pro správu obsahu ve skutečnosti spravují přesměrování programovou aktualizací .htaccess. Například WordPress obsahuje pluginy přesměrování, které fungují tímto způsobem. (A to docela pěkný URL systém WP.)

To vám dává výkon přímého používání .htaccess a zároveň vám dává pohodlí správy z vaší aplikace.

Skrytí vašeho souboru .htaccess: Aspekty zabezpečení

Neexistuje žádný důvod, proč by někdo měl mít možnost zobrazit váš .htaccess soubor z webu.

Navíc existuje několik velkých důvodů, proč byste určitě neměli chtít, aby lidé viděli váš .htaccess soubor.

Největším problémem je, že pokud používáte soubor .htpasswd, jeho umístění je uvedeno v souboru .htaccess. Vědět, kde to najít, usnadňuje nalezení.

Navíc zpravidla nechcete poskytovat veřejnosti podrobnosti o své implementaci.

Přepsat pravidla, nastavení adresáře, zabezpečení – všechny věci, pro které používáte .htaccess – je dobrým zabezpečovacím postupem skrýt všechny tyto záběry na vašem webovém serveru. Čím více se hacker dozví o vašem systému, tím snazší je jeho ohrožení.

Je velmi snadné skrýt soubor .htaccess před veřejným zobrazením. Stačí přidat následující kód:

objednávka dovolit, popřít
popírat ze všeho

Povolení typů MIME

Typy MIME jsou typy souborů. Nazývají se typy MIME kvůli jejich původnímu spojení s e-mailem (MIME je zkratka pro „Víceúčelová rozšíření pro internetovou poštu“). Nejsou nazývány jen „typy souborů“, protože MIME implikuje specifický formát pro určení typu souboru.

Pokud jste někdy vytvořili dokument HTML, pravděpodobně jste určili typ MIME, i když jste ho neznali:

Atribut type odkazuje na konkrétní typ MIME.

Typy MIME na vašem serveru

Někdy zjistíte, že váš webový server není nakonfigurován pro doručování určitého typu souboru. Jednoduše to nefunguje – požadavky na soubor prostě selhávají.

Ve většině případů můžete tento problém vyřešit přidáním typu MIME do souboru .htaccess.

AddType text / RTF RTF

Tato směrnice má tři části, každá oddělená mezerou:

  • Příkaz AddType
  • Typ MIME
  • Přípona souboru.

Pokud chcete spojit několik různých přípon souborů se stejným typem MIME, můžete to udělat na jednom řádku.

AddType image / jpeg jpeg jpg jpe JPG

Vynutit stažení podle typu MIME

Pokud chcete, aby se všechny odkazy na konkrétní typy souborů spouštěly jako stahování, místo aby byly otevřeny v prohlížeči, uděláte to pomocí aplikace typu MIME / octet-stream, například:

AddType application / octet-stream pdf

Opět můžete zadat více přípon souborů s jedním typem:

AddType application / octet-stream pdf doc docx rtf

Seznam přípon souborů a typů MIME

Zde je neúplný seznam formátů souborů a přidružených typů MIME.

Pokud spravujete svůj vlastní web a víte, v jakých typech souborů publikujete zdroje, není třeba tento celý seznam vkládat do souboru .htaccess..

Pokud však provozujete web, k němuž přispívá mnoho dalších lidí a publikujete obsah, možná budete chtít jednoduše povolit velké množství typů souborů, abyste se ujistili, že nikdo nemá špatnou zkušenost.

To platí zejména v případě, že provozujete web, na kterém mohou lidé konkrétně sdílet mnoho souborů, například web pro sdílení souborů, aplikaci pro správu projektů (kde k projektu bude často připojeno mnoho souborů) nebo webovou aplikaci, která zpracovává e-mailem.

Aplikace AddType / macbinhex-40 hqx
AddType aplikace / netalive net
AddType application / netalivelink nel
AddType application / octet-stream bin exe
AddType aplikace / oda oda
Aplikace AddType / pdf pdf
AddType application / postscript ai eps ps
AddType application / rtf rtf
AddType application / x-bcpio bcpio
AddType application / x-cpio cpio
AddType application / x-csh csh
Aplikace AddType / x-director dcr
AddType application / x-director dir
Aplikace AddType / x-director dxr
Aplikace AddType / x-dvi dvi
AddType application / x-gtar gtar
AddType application / x-hdf hdf
Aplikace AddType / x-httpd-cgi cgi
AddType application / x-latex latex
AddType application / x-mif mif
AddType application / x-netcdf nc cdf
AddType application / x-onlive sds
Aplikace AddType / x-sh sh
AddType aplikace / x-shar shar
AddType application / x-sv4cpio sv4cpio
AddType application / x-sv4crc sv4crc
Aplikace AddType / x-tar
AddType application / x-tcl tcl
AddType aplikace / x-tex tex
Aplikace AddType / x-texinfo texinfo texi
AddType application / x-troff t tr roff
AddType application / x-troff-man man
AddType application / x-troff-me me
AddType application / x-troff-ms ms
Aplikace AddType / x-ustar ustar
AddType application / x-wais-source src
AddType aplikace / zip zip
AddType audio / základní au snd
AddType audio / x-aiff aif aif aifc
AddType audio / x-midi mid
AddType audio / x-pn-realaudio ram
AddType audio / x-wav wav
AddType image / gif gif GIF
AddType image / ief ief
AddType image / jpeg jpeg jpg jpe JPG
AddType image / tiff tiff tif
AddType image / x-cmu-raster ras
AddType image / x-portable-anymap pnm
AddType image / x-portable-bitmap pbm
AddType image / x-portable-greymap pgm
AddType image / x-portable-pixmap ppm
AddType image / x-rgb rgb
AddType image / x-xbitmap xbm
AddType image / x-xpixmap xpm
AddType image / x-xwindowdump xwd
AddType text / html html htm
AddType text / prostý txt
AddType text / RTF RTF
AddType text / tab-oddělené hodnoty tsv
AddType text / x-server-parsed-html shtml sht
AddType text / x-setext etx
AddType video / mpeg mpeg mpg mpe
AddType video / quicktime qt mov
AddType video / x-msvideo avi
AddType video / x-sgi-film
AddType x-world / x-vrml wrl

Blokovat hotlinking

Hotlinking je praxe propojení se zdroji z jiných domén namísto nahrávání obsahu na váš vlastní server a jeho obsluhy sami.

Řekněme, že na webu, který se vám líbí, najdete obrázek, který chcete na svém webu použít. Ignorování problémů s autorskými právy v danou chvíli – můžete si obrázek stáhnout, nahrát na svůj web a vložit na svou stránku jako obvykle.


Ale pokud jste byli líní, nebo se snažili zachovat šířku pásma, nebo nevěděli, jak nahrát soubor, můžete jej vložit přímo z původního souboru.

To je hotlinking. Stává se to také u souborů CSS a JS, ale obrázky jsou nejčastější.

Některé weby / hostitelé vám to vůbec nevadí, pokud to uděláte – obrázky z Wikipedie můžete propojit, aniž byste byli naštvaní. A některé webové stránky to podporují v té či oné podobě.

Například, JQuery poskytuje své JS knihovny prostřednictvím CDN (Content Delivery Network), takže můžete hotlink přímo na něj, aniž byste jej museli nahrávat a obsluhovat z vlastního serveru.

Ale mnoho webhostingu považuje hotlinking za formu krádeže šířky pásma a zdrojů.

Jistě, pokud provozujete relativně malý web, nemůžete si dovolit mít každý den tisíce nebo desítky tisíc žádostí o zdroje, které nemají nic společného se skutečnými návštěvníky vašeho webu..

Pokud máte problém s hotlinkingem, můžete jej zakázat pomocí některých pravidel mod_rewrite přidaných do vašeho souboru .htaccess.

PřepsatEngine on
PřepišteCond%! ^ $
RewriteCond%! ^ Http: // (www.)? Example.com /.*$ [NC]
RewriteRule. (Gif | jpg | jpeg | png | js | css) $ – [F]

Nezapomeňte změnit example.com ve třetím řádku na skutečné doménové jméno. Tím se zachytí všechny požadavky, které nepocházejí z vaší domény, a poté zkontrolujeme, zda odpovídá jednomu ze zadaných přípon souborů ve čtvrtém řádku. Pokud existuje shoda, žádost se nezdaří.

Pokud chcete přidat další přípony souborů, můžete jednoduše upravit poslední řádek.

Poskytování alternativního obsahu

Pokud chcete, aby svět věděl, proč jejich hotlinking najednou přestal fungovat, můžete nahradit hotlinked obrázky zvláštním obrázkem se zprávou: “Nenávidíme hotlinking!” nebo „Originální obsah dostupný na http://example.com“.

Namísto nesplnění požadavku jej jednoduše přesměrujete na „speciální“ obrázek:

PřepsatEngine on
PřepišteCond%! ^ $
RewriteCond%! ^ Http: // (www.)? Example.com /.*$ [NC]
RewriteRule. (Gif | jpg) $ http://www.example.com/no-hotlinking.jpg [R, L]

Pokud opravdu chcete komunikovat s lidmi, můžete přesměrovat soubory JavaScriptu nebo CSS na speciální alternativy, které mohou mít nešťastné účinky pro hotlinker. To se však nedoporučuje.

PřepsatEngine on
PřepišteCond%! ^ $
RewriteCond%! ^ Http: // (www.)? Example.com /.*$ [NC]
RewriteRule. (Js) $ http://www.example.com/break-everything.js [R, L]

PřepsatEngine on
PřepišteCond%! ^ $
RewriteCond%! ^ Http: // (www.)? Example.com /.*$ [NC]
RewriteRule. (Css) $ http://www.example.com/super-ugly.css [R, L]

Zakázat nebo povolit index

Co se stane, pokud máte v adresáři .htaccess zadán adresář plný dokumentů nebo jiných zdrojů, žádný soubor index.html a žádná výchozí stránka adresáře.?

V mnoha případech bude výsledkem obecný seznam všech souborů v adresáři.

To je správně. Pokud máte ve svém hostitelském adresáři složku označenou / images a nemá žádnou stránku index.html, když někdo přejde na adresu http://yousite.com/images, bude moci zobrazit seznam všech obrázků na vašem web.

To je výchozí chování většiny webových serverů a z hlediska původní koncepce webové stránky má smysl pouze místo pro uchovávání a sdílení dokumentů. Pro většinu webů to však není žádoucí chování.

Zakázání indexů

Mnoho účtů webhostingu to bude deaktivovat již v rámci své globální konfigurace. Ale ne všichni.

Pokud potřebujete zakázat automaticky generované výpisy adresářů, je to snadné:

Možnosti -Indexy

Povolení indexů

Pokud váš webový server zakázal indexy v rámci globální konfigurace, ale chcete je, můžete je povolit pomocí obráceného příkazu výše..

Možnosti + indexy

Skrytí některých souborů z indexu

Pokud chcete zobrazit seznam adresářů, ale chcete ze seznamu skrýt určité typy souborů, můžete to udělat také.

IndexIgnore * .gif * .jpg

* Je divoká karta chracter. Výše uvedená směrnice skryje všechny soubory, které mají příponu .gif nebo .jpg. Pokud byste chtěli být konkrétnější, mohli byste:

IndexIgnore secret-image.jpg

Povolení CGI všude

CGI neboli Common Gateway Interface je metoda na straně serveru pro zahrnutí skriptů jiných než HTML (jako je Perl nebo SSI) do webových stránek..

Skripty CGI se obvykle ukládají do složky označené / cgi-bin. Webový server je nakonfigurován tak, aby s jakýmkoli zdrojem v tomto adresáři zacházel spíše jako se skriptem než se stránkou.

Problém s tím je dvojí: adresy URL odkazující na zdroje CGI musí být v nich / cgi-bin /, což umisťuje detaily implementace do vaší adresy URL – anti-vzor, ​​kterému je třeba se vyhnout z mnoha důvodů.

Složitá webová stránka může vyžadovat lepší organizační strukturu, než aby se do jedné složky / cgi-bin zaseklo tunu skriptů..

Pokud chcete, aby váš webový server analyzoval skripty CGI bez ohledu na to, kde jsou ve vaší adresářové struktuře, jednoduše přidejte do souboru .htaccess následující:

AddHandler cgi-script .cgi
Možnosti + ExecCGI

Pokud máte jiné přípony souborů, které chcete zpracovat jako skripty CGI, můžete je přidat do prvního řádku.

Skripty jako zdrojový kód

Většinu času vkládáte skripty do svého webového adresáře, protože chcete, aby byly spouštěny jako skripty.

Ale někdy to není to, co chcete. Někdy chcete namísto spuštění skriptu zobrazit zdrojový kód veřejným návštěvníkům.

K tomu může dojít, pokud provozujete službu sdílení souborů nebo web úložiště kódů a chcete, aby lidé viděli zdrojový kód a mohli ho stáhnout, ale skripty jsou ve skutečnosti součástí vašeho webu.

To lze provést v souboru .htaccess odebráním popisovače skriptu pro určité typy souborů a jeho nahrazením popisovačem pro text.

RemoveHandler cgi-script .pl .cgi .php .py
AddType text / plain .pl .cgi .php .py

Případně, jak již bylo zmíněno, můžete namísto zobrazení souborů vynutit automatické stahování souborů s těmito extensiny.

RemoveHandler cgi-script .pl .cgi .php .py
AddType application / octet-stream .pl .cgi .php .py

Buďte opatrní s některým z nich, i když. Pokud chcete, aby se tímto způsobem zobrazovaly pouze některé soubory, ale tyto skripty stále používáte pro zbytek vašeho webu, bude to špatné, pokud tuto směrnici vložíte do souboru .htaccess vašeho kořenového adresáře..

Lepší praxí by bylo umístit všechny takové „zobrazovací“ skripty do jediného adresáře a pak umístit direktivu do souboru .htaccess tam v této složce.

Konfigurace nastavení PHP

Někdy je třeba vyladit nastavení PHP. Správný způsob, jak toho dosáhnout, je v souboru s názvem php.ini.

Bohužel ne všechny webhostingové společnosti umožňují svým zákazníkům upravovat soubor php.ini. To platí zejména pro poskytovatele sdíleného hostingu, kde jediná instalace PHP může spouštět stovky webových stránek.

Naštěstí existuje řešení – do souboru .htaccess můžete vložit pravidla php.ini.

Syntaxe vypadá takto:

php_value [název nastavení] [hodnota]

Například, pokud potřebujete zvýšit maximální velikost nahrávání souboru (běžný problém), je to stejně snadné jako:

php_value upload_max_filesize 10M

Ne všechna nastavení PHP lze zadat v souborech .htaccess. Tak například nemůžete zakázat třídy.

Úplný seznam všech nastavení php.ini naleznete v oficiální příručce směrnic php.ini.

Jak zabránit přístupu k vašemu PHP patří soubory

Existuje několik způsobů, jak zabránit neoprávněnému přístupu k souborům obsahujícím PHP.

Nejprve je můžete vložit do adresáře a nastavit soubor .htaccess tak, aby odepřel veškerý přístup do tohoto adresáře (tj. Odepřít všem, pokud používáte HTTP server Apache). Pokud se někdo pokusí o přístup k souboru, obdrží HTTP 403 Zakázáno Odezva.

Tyto soubory můžete také uložit mimo adresář, ze kterého jsou soubory webových stránek zobrazovány. To znamená, že pokud váš webový server doručuje soubory umístěné na serveru / srv / home, můžete vložit vaše zahrnout soubory pod / srv / home / zahrnuje. Díky tomu jsou soubory nepřístupné prostřednictvím adres URL, můžete k nim však přistupovat a používat je následujícím způsobem: include ‘PATH_TO_YOUR_FILE’

Nakonec můžete definovat konstantu URL pro soubory, které chcete mít přístupné:

define (‘WEBSITE_URL’, ‘http://example.com’);

Poté u souborů, ke kterým nechcete přistupovat, proveďte následující kontrolu:

if (! define (‘WEBSITE_URL’))) {
záhlaví ($ _ SERVER ["SERVER_PROTOCOL"] . "403 Přístup odepřen");
výstup;
}

Jak zabránit přístupu k vašim PHP ini souborům

Způsob, jak zabránit neoprávněnému přístupu k vašim ini souborům, je upravit váš .htaccess soubor tak, aby byl odepřen přístup k ini souborům (tj. Odepřít všem, pokud používáte Apache).

Jak nastavit časové pásmo vašeho serveru

Časové pásmo serveru můžete nastavit zadáním do souboru .htaccess. K tomu budete muset přidat následující řádek:

php_value date.timezone ‘Region / Zone’

Nezapomeňte nahradit oblast / zónu časovým pásmem, které chcete.

Uložte soubor. Změny můžete otestovat vytvořením testovacího souboru PHP obsahujícího následující ve stejném adresáři jako soubor .htaccess:

<?php phpinfo (); ?>

Načtěte soubor do prohlížeče a vyhledejte název směrnice – ve sloupci Místní hodnota by se mělo zobrazit vaše nové nastavení časového pásma.

Kdy nepoužít .htaccess

Úpravy vašeho souboru .htaccess poprvé vám mohou poskytnout náhlý pocit obrovské moci v prostředí webhostingu. Najednou se cítíte jako sysadmin.

Tato síla se bohužel může dostat do vaší hlavy a možná se ocitnete pomocí souboru .htaccess způsoby, které nejsou opravdu nejlepší.

Když potřebujete udělat něco, co vypadá jako druh práce, je to v zásadě dvě situace, kdy byste měli dát tuto směrnici někam jinam.

Další proti proudu

Pokud je to možné, typy direktiv, které můžete umístit do souboru .htaccess, jsou lépe umístěny v souboru httpd.conf, což je soubor nastavení konfigurace pro celý server..

Podobně nastavení PHP patří správněji do souboru php.ini a většina ostatních jazyků má podobné soubory nastavení konfigurace.

Umístění direktiv dále proti proudu, v httpd.conf, php.ini nebo jiném konfiguračním souboru specifickém pro jazyk, umožňuje tato nastavení „zapečetit“ do modulu pro analýzu webového serveru. V případě .htaccess musí být směrnice zkontrolovány a interpretovány s každou jedinou žádostí.

Pokud máte web s nízkým provozem, který obsahuje pouze několik směrnic .htaccess, nejedná se o velký problém. Ale pokud máte velký provoz a spousty směrnic, výkonové zpoždění se může opravdu sčítat.

Bohužel mnoho poskytovatelů sdílených hostingů neumožňuje zákazníkům přístup k souborům httpd.conf nebo php.ini, což nutí uživatele spoléhat se na pomalejší soubor .htaccess.

To poskytuje dvojí pokutu ve srovnání s vlastními konfiguracemi VPS, protože sdílený hosting je také obecně nízký výkon. To je jeden z důvodů, proč by web s slušným provozem měl být pravděpodobně na plánu VPS místo sdíleného hostovacího plánu.

Dále po proudu

Pokud používáte dobrý systém správy obsahu (CMS), jako je WordPress nebo Drupal, můžete některé věci, které byste mohli udělat v souboru .htaccess – například přesměrovat adresy URL nebo blokovat adresy IP – provést zevnitř aplikace..

Často to funguje ve spojení se souborem .htaccess, s aplikací, která programově přidává direktivy.

Je-li to k dispozici, je obvykle nejlepší tyto úkoly provádět z aplikace, spíše než sami upravit soubor .htaccess. Je méně pravděpodobné, že zavedete chyby a nekompatibilní direktivy, pokud používáte dobře otestovaný, open-source plugin.

Odstraňování problémů

Práce se souborem .htaccess může být skvělá – ale také může způsobit, že se váš server zabaví a začne doručovat 500 chybových zpráv o interních serverech.

Zde je několik nápadů, které vám v tom pomohou.

Proveďte jednu věc najednou

To by mělo být samozřejmé, ale – bohužel – je to ponaučení, které se mnozí z nás musí znovu a znovu učit.

Udělej jednu věc. Pak to vyzkoušejte. Pak udělejte jinou věc. Vyzkoušejte to.

Pokud uděláte několik věcí najednou a pak něco selže, nebudete vědět, která směrnice způsobuje problém.

Zálohujte svůj soubor před každou akcí

Spolu s prováděním pouze jedné věci najednou byste měli soubor uložit mezi každou věcí, kterou chcete. Uložený archiv musí být obnovitelný. Toto není Microsoft Word, kde můžete pouze vrátit zpět – potřebujete uloženou kopii souboru.

Měli byste mít vždy k dispozici nejnovější pracovní verzi pro případ, že si něco zkazíte. Vždy, vždy, vždy máte možnost obnovit funkční verzi.

To je nejjednodušší, pokud máte nějaký systém správy zdrojů, jako je git. Můžete se zavázat po každé změně a vrátit se, pokud narazíte na nějaké problémy.

Zkontrolujte protokoly chyb

Pokud narazíte na problém a máte potíže zjistit, proč, zkontrolujte protokoly chyb Apache. Často poskytují cenné informace o tom, kde hledat.

Získejte nápovědu pomocí fór pro vývojáře

Fóra pro vývojáře a Q&Webové stránky, jako je StackOverflow, jsou neocenitelnými nástroji i pro ty nejzkušenější vývojáře a sysadminy. A nezapomeňte na Google. Rozdíl mezi špatným webovým mistrem a skvělým webem často nezná odpověď, je to, kde je odpověď najít..

Běžné problémy .htaccess

Někdy jste udělali překlep. Někdy máte ezoterický a matoucí problém způsobený soutokem nepředvídatelných faktorů.

Většina problémů a skutečně frustrujících jsou ty uprostřed – jednoduché, každodenní problémy, které lze snadno vyřešit, pokud jste o nich věděli..

Zde je několik z nich.

Špatný název souboru

Existuje pouze jeden způsob, jak hláskovat .htaccess – musí začínat tečkou a musí to být ve všech malých písmenech.

Vypadá to hloupě, ale pokud váš soubor .htaccess nedělá to, co očekáváte, měla by to být první věc, kterou zkontrolujete.

.htaccess Zakázáno nebo částečně Zakázáno

Někteří poskytovatelé sdílených hostingů úplně deaktivují .htaccess. Jiné to umožňují, ale omezují použití určitých směrnic – jsou prostě ignorovány, pokud jsou zahrnuty.

Podobně, i na plánech VPS nebo na vlastních dedikovaných serverech, může být .htaccess zakázán.

Pokud máte přístup k souboru httpd.conf nebo k jiným nastavením serveru, můžete to zkontrolovat sami. Pokud najdete direktivu AllowOverride None, zjistili jste viníka. Nahraďte jej AllowOverride All.

Pokud nemáte přístup k souboru httpd.conf (například proto, že jste na sdíleném hostingu), možná budete muset kontaktovat technickou podporu vaší hostitelské společnosti a zjistit, zda vám ji může povolit, nebo vám nabídnout návrhy ow, abych splnil to, co se snažíte dělat jiným způsobem.

Konfliktní nebo přepsané směrnice

Pokud máte více vnořených adresářů, je možné, že každý z nich bude mít svůj vlastní soubor .htaccess. Použije se každý soubor .htaccess z kořenového adresáře, přes každý vnořený adresář – čte se v pořadí, sestupně dolů strom adresáře.

Pokud nastavíte něco v kořenovém adresáři a pak jej přepíše něco v podadresáři, bude mít přednost direktiva v souboru .htaccess nejblíže požadovanému souboru..

Viz také náš mod-přepsat cheat sheet!

.htaccess Často kladené otázky

  • Co je to .htaccess soubor v SEO?

    Soubor .htaccess lze použít k provádění úkolů souvisejících s SEO, jako jsou přesměrování. Přesměrování lze použít k zamezení chybových zpráv 404 ak informování prohledávačů vyhledávacích strojů o tom, které stránky by měly indexovat. Můžete také nastavit záhlaví HTTP ke zlepšení rychlosti načítání stránky, což může zvýšit hodnocení vašeho vyhledávače.

    Kromě toho můžete použít .htaccess k vytvoření konzistentní koncové zásady lomítka. To v kombinaci s pravidly www a HTTPS vám pomůže vyhnout se duplicitnímu obsahu, který může společnost Google penalizovat.

  • Jak vytvořím soubor .htaccess ve WordPress?

    Chcete-li vytvořit soubor .htaccess ve WordPress, použijte tento kód:

    # BEGIN WordPress

    PřepsatEngine zapnuto
    PřepsatBase /
    RewriteRule ^ index \ .php $ – [L]
    RewriteCond% {REQUEST_FILENAME}! -F
    RewriteCond% {REQUEST_FILENAME}! -D
    RewriteRule. /index.php [L]

    # END WordPress

    Pamatujte, že při instalaci WordPress se automaticky vytvoří soubor .htaccess. Vadný plugin však může poškodit soubor .htaccess, což má za následek potřebu jej znovu vytvořit.

  • Proč nevidím svůj soubor .htaccess?

    Pokud nevidíte svůj soubor .htaccess, je to proto, že neexistuje nebo je skrytý. Chcete-li, aby váš FTP klient tyto soubory zobrazoval, musíte změnit nastavení klienta (tj. V FileZilla přejděte na Server > Vynutí zobrazení skrytých souborů). Pokud jste tuto změnu provedli a stále se nezobrazuje. Úspěch, budete ji muset znovu vytvořit.

  • Kolik souborů .htaccess bych měl mít?

    Většina webových stránek nepotřebuje více než jeden soubor .htaccess. Je to proto, že soubory .htaccess vám umožňují provádět změny konfigurace serveru na základě jednotlivých adresářů. Při hostování více webů nebo složitých aplikací však mohou někteří webmasteři používat více než jeden soubor na web, aby mohli provádět pokročilé funkce.

  • Kde je .htaccess v cPanel?

    Chcete-li zobrazit soubor .htaccess, přihlaste se ke svému účtu cPanel. Pak jděte na Soubory > Správce souborů. Na výzvu k výběru adresáře vyberte Webový kořen a ujistěte se, že Zobrazit skryté soubory je zaškrtnuto. Nyní byste měli mít možnost zobrazit svůj .htaccess soubor v cPanelu.

  • Jaké je použití souboru .htaccess v CodeIgniter?

    Soubor .htaccess lze použít ve spojení s CodeIgniter k vytvoření adres URL vhodných pro vyhledávače. Ve výchozím nastavení obsahují adresy URL CodeIgniter soubor index.php. Pomocí .htaccess můžete tento výchozí soubor index.php smazat, aby se nezobrazil ve všech adresách URL vaší aplikace..

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map