Príručka pre začiatočníkov .htaccess pre návrhárov a vývojárov
Medzi mnohými rôznymi nástrojmi na prispôsobenie vášho webového servera je konfiguračný súbor .htaccess obrovským prínosom. Môžeš rýchlo obnoviť typy dokumentov, analyzovať motory, presmerovania URL, a mnoho ďalších dôležitých funkcií. Webmasteri, ktorí nie sú veľmi technickí, sa nemusia dostať do špecifikácií riadenia vlastného súboru .htaccess. Samotná téma je však fascinujúca a stojí za vyšetrovanie.
Pre tento článok chcem predstaviť niektoré z viac účelných konceptov pre webmasterov a webových vývojárov. Ktokoľvek, kto je spustenie vlastnej webovej stránky na serveri Apache určite chcú pochopiť, ako spravovať ich súbor .htaccess. to poskytuje toľko prispôsobiteľnosti a to môžu pracovať vo všetkých jazykoch webu od PHP po Ruby.
V dolnej časti tohto príspevku som pridala niekoľko externých webových aplikácií pomáhajú nováčikom dynamicky generovať svoje súbory .htaccess.
Prečo používať súbor .htaccess?
Je to skvelá otázka a možno by sme mali začať tým, že odpovieme “čo je súbor .htaccess”? Je to veľmi špeciálny konfiguračný súbor používaný webovým serverom Apache. Súbor .htaccess môže informovať webový server ako prezentovať rôzne formy informácií a ako spracovávať rôzne hlavičky HTTP žiadostí.
Naozaj je to prostriedok decentralizácie organizovať nastavenia webového servera. Jeden fyzický server môže obsahovať 50 rôznych webových stránok s vlastným súborom .htaccess. Umožňuje webmasterovám veľkú moc, čo by inak nebolo možné. Ale prečo by ste ich mali používať?
Najväčším dôvodom je bezpečnosť. Môžeš zamknúť niektoré adresáre alebo ich chrániť heslom. To je skvelé pre súkromné projekty alebo nové systémy správy obsahu, kde chcete trochu viac zabezpečenia. Existujú však aj bežné úlohy, ako napríklad presmerovanie 404 chybových hlásení na určitú webovú stránku. Toto má iba jeden riadok kódu a môže výrazne ovplyvniť to, ako návštevníci reagujú na chýbajúce stránky.
Pravda, nie je veľa čo môžem povedať, aby som presvedčil ostatných, že súbor .htaccess stojí za pochopenie. Akonáhle to uvidíte v akcii, potom môžete rozpoznať všetku hodnotu, ktorá pochádza z tohto malého konfiguračného súboru. Tiež dúfam, že zvyšok tohto článku môže obsahovať niekoľko zaujímavých tém, ktoré prinesú správcom webových stránok správu o konfigurácii .htaccess.
Povoliť / Zakázať prístup
Je možné rozpoznať potenciálnych návštevníkov nevyžiadanej pošty a odmietnuť im prístup na vaše webové stránky. To môže byť trochu extrémne, ale ak viete, že osoba alebo skupina ľudí bola zacielená na vaše webové stránky, tam sú niektoré možnosti na výber. Môžete si vybrať sprostredkovanie domény s cieľom odmietnuť alebo zakázať návštevníkov pomocou adresy IP.
príkaz umožniť, poprieť poprieť od 255.0.0.0 zamietnuť od 123.45.6. dovoliť všetkým
Tieto vzorové kódy boli skopírované z príručky Htaccess, pretože sú perfektnou šablónou na začatie. Všimnite si, že na druhej adrese IP chýba štvrté celé číslo. Tento kódový blok bude zacieliť na prvú IP (255.0.0.0) a každú IP v rozsahu 123.45.6.0-255, potom povoľte všetku ďalšiu prevádzku. Webmasteri nesmú túto možnosť používať tak často ako iné techniky, ale je užitočné pochopiť.
Zabrániť výpisu adresára
Bude čas, keď máte otvorený adresár, ktorý je nastaviť predvolené prehliadanie. To znamená, že používatelia môžu zobraziť všetky súbory uvedené v internej štruktúre adresárov, napríklad v priečinku s obrázkami. Niektorí webmasteri nechcú povoliť zápis adresárov a našťastie útržok kódu je veľmi ľahko zapamätateľný.
Možnosti - Indikuje
Videl som túto odpoveď predstavenú nespočetne cez Stack Overflow a môže to byť jedna z najjednoduchších pravidiel .htaccess, ktoré si treba zapamätať.
Je to možné vytvoriť viacero súborov .htaccess v každom z týchto adresárov takže možno jeden z nich je chránený heslom, ale iní nie. A stále môžete udržať Možnosti - Indikuje takže návštevníci nemôžu prehľadávať vaše webové stránky / obrázky / priečinok.
Ochrana heslom
Ochrana heslom pre vaše adresáre je veľmi bežným postupom zabezpečenie administratívnych oblastí a ďalších zložiek, ktoré sú pre vaše webové stránky rozhodujúce. Niekedy budete chcieť ponúknuť prístup iba malej skupine ľudí. Ostatné heslá zabraňujú hackerom získať prístup do správneho panelu webových stránok. Ale buď je to veľmi silné riešenie pre celý rad problémov.
K dispozícii je užitočná príručka ochrany heslom, ktorá načrtáva dôležité útržky kódu. Budete musieť generovať súbor s heslom, v ktorom sa ukladajú poverenia používateľského mena a hesla. Takto môže Apache skontrolovať, čo používateľ vkladá, aby zistil, či majú mať prístup. Všimnite si, ako budete potrebovať vygenerovať vzorku pre svoje používateľské meno a heslo.
Odporúčam používať tento generátor htpassword, aby ste si mohli ušetriť trochu času. Syntax bude vždy vyniknúť a nemusíte šifrovať heslo sami. A ďalšou skvelou možnosťou je chrániť heslom celý zoznam adresárov. Tento príklad môžeme vidieť v galérii úryvkov kódu CSS-Tricks.
AuthType Basic AuthName "Táto oblasť je chránená heslom" AuthUserFile / full / path / to /.htpasswd Vyžadovať platný používateľ
Bezpečnosť pre WordPress
Ak chcete, aby tento nápad na ochranu heslom bol dobrý, prejdite na príklad skutočného sveta. Tento zložitejší útržok kódu bude vynútiť autentifikáciu používateľa pre každého, kto má prístup k súboru WordPress wp-login.php. Pôvodný zdroj nájdete na stránke Aplikácia Ask, ktorá obsahuje množstvo ďalších fragmentov ochrany WordPress.
Objednávka Odmietnuť, Umožniť odmietnuť od všetkých Uspokojiť všetky AuthName "Chránené AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Basic Vyžadovať valid-user
A ak budete postupovať podľa týchto pravidiel .htaccess, môže to tiež pomôcť pri ochrane heslom správcovskej oblasti. Typicky je to wp-login.php súbor bude získať najviac hitov od ľudí, ktorí sa snažia robiť silnú cestu do vášho systému. Takže aj vzorové kódy uvedené vyššie by boli viac ako dosť pridanej bezpečnosti pre vaše webové stránky WordPress.
Pravidlá prepisovania URL HTTP
Prepisovanie adries URL je pravdepodobne jedno z najbežnejších použití súborov .htaccess. WordPress predvolené inštalácie môžu skutočne generovať súbor .htaccess priamo z administratívneho panelu. To vám umožní vytvoriť pekné adresy URL, ktoré nemajú štruktúru .php? P = 1.
Chcem sa pozrieť na tento príklad prepísania ako aktualizovať podčiarknuté pomlčky odvtedy obsahuje veľa najdôležitejších prvkov.
Možnosti + FollowSymLinks RewriteEngine Na rewriteBase / RewriteRule! \. (Html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] * [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Áno] RewriteRule ^ ([^ _] * ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Áno] RewriteRule ^ ([^ _] * $ 3 [E = uscor: Áno] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [ //d.com/$1 [R = 301, L]
RewriteEngine a RewriteBase možno najčastejšie nastaviť na tieto presné hodnoty. Potrebujete však zapnutý RewriteEngine, aby ste mohli pracovať. Existuje množstvo sprievodcov online, ktoré vysvetľujú, ako povoliť mod_rewrite a váš poskytovateľ hostingu tiež môže pomôcť.
Všimnite si, že syntax nasleduje vzorec RewriteRules na vrchu. Tieto pravidlá sa používajú odpovedať na prípady, ktoré sa odosielajú ako požiadavka HTTP. Odpovedajú na ne RewriteRule, ktorý v tomto prípade presmeruje všetko na doménu d.com. Koncové konzoly ako [R = 301, L] sa nazývajú prepísať príznaky, ktoré sú dôležité, ale viac pokročilej témy.
Syntax mod_rewrite je určite trochu mätúci, ale nemusíte byť zastrašení! Úryvky môžu vyzerať oveľa jednoduchšie v iných príkladoch.
Keď sa práve začínate, musím vám odporučiť mod_rewrite webapp, ktorý vám pomôže generovať vzorky kódu pomocou reálnych adries URL. Je to skvelý nástroj, pretože môžete vyhľadávať rôzne položky v syntaxe, aby ste videli, čo vlastne robia v pravidlách prepisovania. Tu je ďalší veľký tutoriál s jednoduchším príkladom na štúdium:
RewriteRule ^ dir / ([0-9] +) /? $ /Index.php?id=$1 [L]
Nepokúšajte sa preťažiť týmito všetkými naraz. Trvalo mi to viac ako 3-4 mesiace, aby som naozaj začala chápať, ako prepísať adresy URL pomocou [0-9a-zA-Z] + a podobných vzorov. Pokračujte v cvičeniach a časom sľubujem, že dostanete tieto veci, ako je to bežné vedomosti.
Odchýlky kódu pre webmasterov
Mám rád ľahko použiteľné úryvky a chcem zhromaždiť túto malú zbierku relevantných kódov .htaccess pre webmasterov. Každá z týchto nápadov sa môže hodiť do vášho súboru .htaccess spolu s ďalšími kódovými blokmi. Väčšina týchto úryvkov je skvelá riešenie rýchlych problémov alebo opravy vo vašom prostredí webového servera. Predstavte si, že perfektné nastavenie Apache pre úplne nových správcov webu práve začína online.
Nastavenie adresára DirectoryIndex
Príkaz pre DirectoryIndex sa bežne používa v jednom riadku. Apache môžete povedať, ktoré dokumenty by mali byť pôvodne spracované ako “hlavné” Dokument. Štandardne to bude cieľové položky ako index.html, index.php, index.asp a ďalšie indexové súbory. Ale pomocou tohto útržku kódu, ktorý som skopíroval nižšie, máte možnosť vytvoriť tento koreňový dokument všetkým, čo sa vám páči.
IndexIndex index.html index.cgi index.php
Poradie dokumentov by malo začať s najdôležitejšími a pohybovať sa medzi najdôležitejšími radmi. Takže ak nemáme súbor HTML alebo CGI, potom sa záložný súbor dostane index.php. A dokonca môžete tieto súbory pomenovať home.php alebo someotherfile.php a je to všetko platná syntax.
Vynúte WWW alebo subdoménu mimo WWW
Spoločnosť Google môže pracovať s oboma verziami domény webových stránok, ak ich nešpecifikujete www.domain.com alebo len domain.com. Podľa mojich skúseností je najlepšou praxou vyberte jednu z nich a nastavte ju ako jedinú voľbu cez .htaccess. Potom Google neindexuje rôzne adresy URL, pričom niektoré smerujú na subdoménu WWW, zatiaľ čo iné nie.
# Force WWW Subdoména RewriteEngine Na RewriteCond% HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Žiadna subdoména RewriteEngine On RewriteCond% HTTP_HOST! ^ Doména.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301]
Tento úryvok kódu pochádza z archívu CSS-Triky a poskytuje veľmi užitočné riešenie. Mali by ste aktualizovať doménu tak, aby ste mali všetko, čo potrebujete pre svoju vlastnú webovú stránku. Inak to bude problém a zistíte, že hneď! Ale veľmi podporujem presadzovanie jednej z týchto dvoch možností a je to na začiatku môjho zoznamu úloh po spustení novej webovej stránky.
Stiahnutie stiahnutého mediálneho súboru
Iný pomerne dôležitý úryvok umožňuje nútiť určité typy médií sťahovať namiesto zobrazenia v prehliadači. Okamžite si myslím, že PDF dokumenty a audio súbory MP3, ktoré môžu byť uvedené vo formáte na stiahnutie, ale ako to vy uistite sa, že sú stiahnuteľné? Našiel som podobný článok publikovaný v príručke Htaccess, ktorý popisuje tento útržok kódu.
Aplikácia AddType / oktet-stream .zip .mp3 .mp4
Neváhajte zahrnúť ešte viac typov súborov na konci tohto riadku. Všetky formáty médií, ktoré používajú typ MIME typu octet-stream, budú stiahnuteľné. Vynútenie tohto prístupu prostredníctvom .htaccess je veľmi priama cesta, ktorá zabezpečí, že ľudia nebudú môcť zobraziť tieto súbory v prehliadači.
Vlastné chybové doklady
Posledný posledný kus, ktorý chcem pridať, je úplná šablóna vlastných dokumentov o chybe. Obvykle sú tieto číselné kódy viditeľné iba na konci servera. Existuje však veľa týchto chybových dokumentov, s ktorými by ste mali byť oboznámení. Niekoľko príkladov môže byť 403/404 a 301 presmerovanie.
Táto šablóna kódu chyby začína na 100 a presunie sa smerom hore na 500 chýb. Upozorňujeme, že zrejme nepotrebujete všetko. Iba najčastejšie chyby by boli potrebné, a možno aj niekoľko neznámych úryvkov, ak cítite potrebu.
Ak nepoznáte kód, jednoducho ho vyhľadajte na Wikipédii, aby ste získali lepšie porozumenie.
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
- .htaccess generátor presmerovania
- .htaccessEditor - Vytvorte súbor .htaccess
- Mod prepísať generátor GenerateIt.net
Ďalšie užitočné zdroje
- .htaccess v Httpd Wiki
- Oficiálna dokumentácia Apache htaccess
- Opýtajte sa Apache Blog - Archív Htaccess
- Ultimate sprievodca htaccess a mod_rewrite
- Všetko, čo ste chceli vedieť o pravidlách Mod_Rewrite, ale nebojte sa ich opýtať
Záverečné myšlienky
Existuje toľko nespočetných zdrojov, ktoré online diskutujú o súboroch .htaccess. Moje prepojené články a webové aplikácie sú skvelé miesto na začatie. Ale stále praktizujte nové myšlienky a nebojte sa testovanie úryvkov kódu. Ako dlho máte záložný súbor potom môžete vyskúšať čokoľvek, čo sa vám páči a je to zábavná vzdelávacia skúsenosť.
Ak máte ďalšie nápady alebo návrhy týkajúce sa správy .htaccess, zdieľajte sa s nami v diskusnej oblasti nižšie.