Domovská » Kódování » Průvodce pro začátečníky .htaccess pro projektanty a vývojáře

    Průvodce pro začátečníky .htaccess pro projektanty a vývojáře

    Mezi mnoho různých nástrojů pro přizpůsobení webového serveru je konfigurační soubor .htaccess obrovským přínosem. Můžeš rychle obnovit typy dokumentů, parsovací stroje, přesměrování adres URL, a mnoho dalších klíčových rysů. Webmasteři, kteří nejsou příliš technické, se nemusí dostat do specifik správy vlastního souboru .htaccess. Ale samotné téma je fascinující a stojí za to vyšetřovat.

    Pro tento článek chci představit některé z více účelných konceptů pro webmastery a webové vývojáře. Každý, kdo je spuštění vlastního webu na serveru Apache bude určitě chtít pochopit, jak spravovat svůj soubor .htaccess. To poskytuje tolik přizpůsobitelnosti a to mohou pracovat v jakémkoliv jazyce z PHP do Ruby.

    Ve spodní části tohoto příspěvku jsem přidal (a) některé externí webové soubory pomáhají nově příchozím generovat dynamicky soubory .htaccess.

    Proč používat soubor .htaccess?

    To je velká otázka a možná bychom měli začít odpovědí “co je soubor .htaccess”? Jedná se o velmi speciální konfigurační soubor používaný webovým serverem Apache. Souboru .htaccess lze sdělit webovému serveru jak prezentovat různé formy informací a jak zpracovávat různé záhlaví HTTP požadavků.

    Opravdu je to prostředek decentralizace organizovat nastavení webového serveru. Jeden fyzický server může mít 50 různých webových stránek, každý s vlastním souborem .htaccess. Poskytuje moc webmasterům, což by jinak nebylo možné. Ale proč byste měli použít jeden?

    Největším důvodem je bezpečnost. Můžeš uzamknout určité adresáře nebo je chránit heslem. To je skvělé pro soukromé projekty nebo nové systémy pro správu obsahu, kde chcete trochu více zabezpečení. Existují však také běžné úkoly, jako je přesměrování 404 chybových zpráv na určitou webovou stránku. To trvá pouze jeden řádek kódu a může dramaticky ovlivnit, jak návštěvníci reagují na chybějící stránky.

    Pravda není moc, co mohu říci přesvědčit ostatní, že soubor .htaccess stojí za pochopení. Jakmile ho uvidíte v akci, můžete rozpoznat všechny hodnoty, které pocházejí z tohoto malého konfiguračního souboru. Také doufám, že zbytek tohoto článku může představovat některá zajímavá témata, která přivedou webmastery do prostředí správy konfigurace .htaccess.

    Povolit / Odepřít přístup

    Je možné rozpoznat potenciální návštěvníky spamu a odepřít jim přístup na vaše webové stránky. To může být trochu extrémní, ale pokud víte, že osoba nebo skupina lidí se zaměřuje na vaše webové stránky, můžete si vybrat z několika možností. Můžete si vybrat odkaz na doménu, abyste návštěvníkům zakázali nebo zakázali IP adresu.

    zakázat odepřít od 255.0.0.0 odepřít od 123.45.6. dovolit od všech 

    Tyto ukázkové kódy byly zkopírovány z Htaccess Guide, protože jsou ideální šablonou pro začátek. Všimněte si, že na druhé IP adrese chybí 4. celé číslo. Tento kódový blok bude cílit na první IP (255.0.0.0) a každé IP v rozsahu 123,45,6,0-255, pak povolte veškerý další provoz. Webmasteři to nesmí používat tak často jako jiné techniky, ale je užitečné porozumět.

    Zabránit výpisu adresáře

    Budou časy, kdy máte otevřený adresář ve výchozím nastavení povoleno procházení. To znamená, že uživatelé mohou zobrazit všechny soubory uvedené v interní struktuře adresářů, jako je složka obrázků. Někteří webmasteři nechtějí povolit výpis adresářů a naštěstí je útržek kódu snadno zapamatovatelný.

    Možnosti -Indexy 

    Viděl jsem tuto odpověď, která byla v průběhu přetečení Stack nesčetná, a může to být jeden z nejjednodušších pravidel .htaccess.

    Je to vlastně možné vytvořit více souborů .htaccess uvnitř každého z těchto adresářů tak možná jeden z nich je chráněn heslem, ale ostatní nejsou. A stále si můžete udržet Možnosti -Indexy tak, aby návštěvníci nemohli procházet vaše webové stránky / images / folder.

    Ochrana heslem

    Heslo chrání vaše adresáře je velmi běžný postup pro zabezpečení administračních oblastí a dalších složek, které jsou důležité pro vaše webové stránky. Někdy budete chtít nabídnout přístup pouze malé skupině lidí. Jinak hesla mají zabránit hackerům v získávání přístupu do vašeho administračního panelu. V každém případě je to velmi mocné řešení celé řady problémů.

    Tam je praktický průvodce na ochranu heslem, který nastiňuje důležité úryvky kódu. Budete muset vygenerovat soubor hesel, který ukládá pověření username / password. Apache tak může kontrolovat, co uživatel zadává, aby zjistil, zda by mu měl být udělen přístup. A všimněte si, jak budete muset vygenerovat vzorek pro své uživatelské jméno a heslo.

    Doporučil bych použít tento generátor htpassword, takže můžete ušetřit trochu času. Syntaxe vždy vyjde dokonale a heslo nemusíte šifrovat sami. A další velkou možností je chránit heslem celý seznam adresářů. Tento příklad můžeme vidět v galerii kódů kódu CSS-Tricks.

    AuthType Basic AuthName "Tato oblast je chráněna heslem" AuthUserFile /full/path/to/.htpasswd Vyžadovat platného uživatele 
    Zabezpečení pro WordPress

    Abychom tento nápad na ochranu heslem mohli dobře využít, zobrazme příklad reálného světa. Tento složitější fragment kódu bude vynutit ověření uživatele pro každého, kdo přistupuje k souboru WordPress wp-login.php. Najdete původní zdroj na Ask Apache, který má mnoho dalších WordPress ochrany úryvky.

     Zakázat zakázku, povolit odepření od všech spokojených libovolné jméno_chránce "Chráněno pomocí AskApache" AuthUserFile /web/askapache.com/.htpasswda1 BasicType Basic Vyžadovat platný uživatel  

    A pokud se budete řídit těmito pravidly .htaccess, může to také pomoci chránit heslem oblast admin. Typicky wp-login.php soubor se dostane nejvíce hitů od lidí, kteří se snaží brutální si cestu do vašeho systému. Takže i jen výše uvedené vzorové kódy by byly více než dostatečná bezpečnost pro vaše webové stránky WordPress.

    Pravidla pro přepisování URL HTTP

    Přepisování adres URL je pravděpodobně jedním z nejčastějších použití souborů .htaccess. Ve výchozím nastavení může aplikace WordPress skutečně instalovat vygenerovat soubor .htaccess přímo z administračního panelu. To vám umožní vytvořit hezké adresy URL, které nemají strukturu .php? P = 1.

    Chci se podívat na tento příklad přepsání jak aktualizovat podtržítka na pomlčky od toho obsahuje mnoho nejdůležitějších prvků.

    Možnosti + FollowSymLinks RewriteEngine On RewriteBase / RewriteRule! (Html ​​| php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Ano] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _ ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Ano] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: Ano] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Ano] RewriteCond% ENV: uscor ^ Ano $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L] 

    RewriteEngine a RewriteBase mohou být vždy nastaveny na tyto přesné hodnoty. Ale musíte zapnout RewriteEngine pro cokoliv jiného k práci. Existuje spousta příruček online vysvětlující, jak povolit mod_rewrite a váš poskytovatel hostingu může také pomoci.

    Všimněte si, že syntaxe následuje vzor RewriteRules Nahoře. Tato pravidla jsou zvyklá proti případům odeslaným jako požadavek HTTP. Ty jsou zodpovězeny RewriteRule, který v tomto případě přesměruje vše do domény d.com. Koncové závorky jako [R = 301, L] se nazývají příznaky přepisu, které jsou důležité, ale spíše rozšířené téma.

    Syn_rewrite syntax je určitě trochu matoucí, ale nenechte se zastrašit! Úryvky mohou vypadat mnohem snadněji v jiných příkladech.

    Když právě začínám, musím doporučit tuto webovou stránku mod_rewrite, která vám pomůže vytvářet vzorky kódu pomocí skutečných adres URL. Toto je skvělý nástroj, protože můžete vyhledat různé položky v syntaxi, abyste viděli, co ve skutečnosti dělají v pravidlech přepsání. Zde je další skvělý návod s jednodušším příkladem ke studiu:

    RewriteRule ^ dir / ([0-9] +) /? $ /Index.php?id=$1 [L] 

    Nesnažte se přetížit se na tyto všechny najednou. Trvalo mi to více než 3-4 měsíce, než jsem začal opravdu chápat, jak přepsat URL s [0-9a-zA-Z] + a podobnými vzory. Pokračujte v praktikování a v době, kdy vám slibuji, dostanete takové věci, jako je to, že je to běžné vědomí.

    Kódové úryvky pro webmastery

    Mám rád snadno použitelné kousky a chci dát dohromady tuto malou sbírku příslušných kódů .htaccess pro webmastery. Každá z těchto myšlenek se vejde pěkně do vašeho vlastního souboru .htaccess spolu s dalšími bloky kódu. Většina těchto úryvků je skvělá řešení rychlých problémů nebo oprav v prostředí webového serveru. Představte si perfektní nastavení Apache pro zbrusu nové webmastery, kteří právě začínají online.

    Nastavení DirectoryIndex

    Příkaz DirectoryIndex je běžně používán v jediném řádku. Apache můžete sdělit, které dokumenty mají být zpočátku považovány za dokumenty “hlavní” dokument. Ve výchozím nastavení to bude cílové položky, například index.html, index.php, index.asp a další soubory indexu. Ale pomocí tohoto fragmentu kódu, který jsem zkopíroval níže, máte možnost tento kořenový dokument vytvořit, co chcete.

    DirectoryIndex index.html index.cgi index.php 

    Pořadí dokumentů by mělo začínat nejdůležitějšími a projít řadami na nejméně důležité. Pokud tedy nemáme HTML nebo CGI soubor, pak se vrátíme index.php. A tyhle soubory můžete dokonce pojmenovat home.php nebo someotherfile.php a je to platná syntaxe.

    Vynutit WWW nebo Non-WWW subdoménu

    Pokud nezadáte, Google může pracovat s oběma verzemi vaší domény www.domain.com nebo prostě domain.com. Podle mých zkušeností je to nejlepší praxe vyberte jednu z nich a nastavte ji jako jedinou volbu přes .htaccess. Poté Google neindexuje různé adresy URL s některými odkazy na subdoménu WWW, zatímco jiné ne.

    # Force WWW Subdoména RewriteEngine On RewriteCond% HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Bez subdomény RewriteEngine On RewriteCond% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301] 

    Tento fragment kódu pochází z archivu CSS-Tricks a poskytuje velmi praktické řešení. Měli byste aktualizovat doménu tak, aby odpovídala vašim potřebám. V opačném případě dojde k problémům a hned si to všimnete! Ale velmi podporuji vynucení jedné z těchto dvou možností a je to na prvním místě v seznamu mých úkolů po spuštění nové webové stránky.

    Vynutit stažení souborů médií

    Další poměrně důležitý úryvek umožňuje vynucení některých typů médií ke stažení namísto zobrazení v prohlížeči. Ihned si mohu myslet na PDF dokumenty a MP3 audio soubory, které mohou být prezentovány ve formátu ke stažení, ale jak na to Ujistěte se, že jsou ke stažení? Našel jsem podobný článek publikovaný na Htaccess Guide, který popisuje tento úryvek kódu.

    AddType application / octet-stream .zip .mp3 .mp4 

    Na konci tohoto řádku můžete zahrnout ještě více typů souborů. Všechny formáty médií používající typ MIME oktetového proudu budou ke stažení. Vynucení tohoto prostřednictvím .htaccess je velmi přímá cesta, která zajistí, že lidé nebudou moci prohlížet tyto soubory v prohlížeči.

    Vlastní chybové dokumenty

    Poslední poslední část, kterou chci přidat, je plná šablona vlastních chybových dokumentů. Obvykle jsou tyto číselné kódy vidět pouze na konci serveru. Existuje však spousta těchto chybových dokumentů, se kterými byste se měli seznámit. Několik příkladů může být 403/404 chyby a Přesměrování 301.

    Tato šablona kódu chyby začíná na 100 a pohybuje se nahoru do 500 chyb. Vezměte prosím na vědomí, že všechny z nich samozřejmě nepotřebujete. Byly by nezbytné pouze ty nejběžnější chyby a možná i několik obskurních kousků, pokud cítíte potřebu.

    Pokud nepoznáte kód, podívejte se na Wikipedii, abyste ho lépe pochopili.

    ErrorDocument 100 / 100_CONTINUE ErrorDocument 101 / 101_SWITCHING_PROTOCOLS ErrorDocument 102 / 102_PROCESSING ErrorDocument 200 / 200_OK ErrorDocument 201 / 201_CREATED ErrorDocument 202 / 202_ACCEPTED ErrorDocument 203 / 203_NON_AUTHORITATIVE ErrorDocument 204 / 204_NO_CONTENT ErrorDocument 205 / 205_RESET_CONTENT ErrorDocument 206 / 206_PARTIAL_CONTENT ErrorDocument 207 / 207_MULTI_STATUS ErrorDocument 300 / 300_MULTIPLE_CHOICES ErrorDocument 301 / 301_MOVED_PERMANENTLY ErrorDocument 302 / 302_MOVED_TEMPORARILY ErrorDocument 303 / 303_SEE_OTHER ErrorDocument 304 / 304_NOT_MODIFIED ErrorDocument 305 / 305_USE_PROXY ErrorDocument 307 / 307_TEMPORARY_REDIRECT ErrorDocument 400 / 400_BAD_REQUEST ErrorDocument 401 / 401_UNAUTHORIZED ErrorDocument 402 / 402_PAYMENT_REQUIRED ErrorDocument 403 / 403_FORBIDDEN ErrorDocument 404 / 404_NOT_FOUND ErrorDocument 405 / 405_METHOD_NOT_ALLOWED ErrorDocument 406 / 406_NOT_ACCEPTABLE ErrorDocument 407 / 407_PROXY_AUTHENTICATION_REQUIRED ErrorDocument 408 / 408_REQUEST_TIME_OUT ErrorDocument 409 / 409_CONFLICT ErrorDocument 410 / 410_GONE ErrorDocument 411 / 411_LENGTH_REQUIRED ErrorDocument 412 / 412_PRECONDITION_FAILED ErrorDocument 413 / 413_REQUEST_ENTITY_TOO_LARGE ErrorDocument 414 / 414_REQUEST_URI_TOO_LARGE ErrorDocument 415 / 415_UNSUPPORTED_MEDIA_TYPE ErrorDocument 416 / 416_RANGE_NOT_SATISFIABLE ErrorDocument 417 / 417_EXPECTATION_FAILED ErrorDocument 422 / 422_UNPROCESSABLE_ENTITY ErrorDocument 423 / 423_LOCKED ErrorDocument 424 / 424_FAILED_DEPENDENCY ErrorDocument 426 / 426_UPGRADE_REQUIRED ErrorDocument 500 / 500_INTERNAL_SERVER_ERROR ErrorDocument 501 / 501_NOT_IMPLEMENTED ErrorDocument 502 / 502_BAD_GATEWAY ErrorDocument 503 / 503_SERVICE_UNAVAILABLE ErrorDocument 504 / 504_GATEWAY_TIME_OUT ErrorDocument 505 / 505_VERSION_NOT_SUPPORTED ErrorDocument 506 / 506_VARIANT_ALSO_VARIES ErrorDocument 507 / 507_INSUFFICIENT_STORAGE ErrorDocument 510 / 510_NOT_EXTENDED 
    Online .htaccess Webapps
    • Htaccess Builder
    • .generátor přesměrování htaccess
    • .htaccessEditor - Vytvořit soubor .htaccess
    • Mod Rewrite Generátor GenerateIt.net
    Další užitečné zdroje
    • .htaccess v Httpd Wiki
    • Oficiální dokumentace Apache htaccess
    • Zeptejte se Apache blog - Htaccess archivy
    • Ultimate průvodce htaccess a mod_rewrite
    • Vše, co jste kdy chtěli vědět o pravidlech Mod_Rewrite, ale báli jste se zeptat

    Závěrečné myšlenky

    Existuje mnoho nespočetných zdrojů, o kterých se diskutuje o souborech .htaccess. Moje propojené články a webové stránky jsou skvělým místem, kde začít. Ale udržujte si nové nápady a nebojte se testování kódových útržků. Tak dlouho jak máte záložní soubor pak si můžete vyzkoušet vše, co se vám líbí, a je to zábavný zážitek z učení.

    Pokud máte další nápady nebo návrhy týkající se .htaccess managementu, sdělte nám je prosím v níže uvedené diskusní oblasti.