Početna » šifriranje » Vodič za početnike .htaccess za dizajnere i programere

    Vodič za početnike .htaccess za dizajnere i programere

    Među mnogim različitim alatima za prilagođavanje vašeg web poslužitelja, .htaccess konfiguracijska datoteka je ogromna prednost. Možeš brzo poništavanje vrsta dokumenata, analiziranje motora, preusmjeravanje URL-ova, i mnoge druge ključne značajke. Webmasteri koji nisu vrlo tehnički možda neće ući u specifičnosti upravljanja vlastitom .htaccess datotekom. Ali sama tema je fascinantna i vrijedna istraživanja.

    U ovom članku želim predstaviti neke od svrhovitijih koncepata za webmastere i web programere. Svatko tko jest pokretanje vlastite web stranice na Apache poslužitelju će svakako htjeti razumjeti kako upravljati svojom .htaccess datotekom. To pruža toliko prilagodljivosti i to može raditi na svim web-jezicima od PHP-a do Ruby-a.

    Na dnu ovog posta dodao sam neke vanjske web-stranice pomoći novodošli generirati svoje. Htaccess datoteke dinamički.

    Zašto koristiti .htaccess datoteku?

    Ovo je veliko pitanje i možda bismo trebali početi odgovorom “što je .htaccess datoteka”? To je vrlo posebna konfiguracijska datoteka koju koristi Apache web poslužitelj. Datoteka .htaccess može reći web-poslužitelju kako predstaviti različite oblike informacija i kako se nositi s raznim zaglavljima HTTP zahtjeva.

    Stvarno je to sredstvo decentralizacija za organiziranje postavki web-poslužitelja. Jedan fizički poslužitelj može sadržavati 50 različitih web-mjesta od kojih svaka ima vlastitu .htaccess datoteku. To daje puno moći webmasterima, što bi inače bilo nemoguće. Ali zašto biste ga trebali koristiti?

    Najveći razlog je sigurnost. Možeš zaključati određene direktorije ili ih zaštititi lozinkom. Ovo je super za privatne projekte ili nove sustave za upravljanje sadržajem gdje želite malo dodatne sigurnosti. No postoje i uobičajene zadatke kao što je preusmjeravanje 404 poruka o pogrešci na određenu web-stranicu. Ovo traje samo jedan redak koda i može dramatično utjecati na to kako posjetitelji reagiraju na nedostajuće stranice.

    Iskreno, ne mogu puno reći da uvjerim druge da vrijedi razumjeti datoteku .htaccess. Nakon što ga vidite u akciji, tada možete prepoznati svu vrijednost koja dolazi iz ove sitne konfiguracijske datoteke. Također se nadam da će ostatak ovog članka predstaviti neke uvidne teme koje će webmastere unijeti u svjetlo upravljanja .htaccess konfiguracijom.

    Dopusti / zabrani pristup

    Moguće je prepoznati potencijalne posjetitelje neželjene pošte i onemogućiti im pristup vašoj web-lokaciji. To može biti malo ekstremno, no ako znate da je osoba ili grupa ljudi ciljala vašu web-lokaciju, postoji nekoliko opcija koje možete odabrati. Možete odabrati preporuku domene da biste odbili ili zabranili posjetitelje IP adresom.

    narudžba dopušta, odbiti odbiti iz 255.0.0.0 odbiti iz 123.45.6. dopustiti od svih 

    Ovi kodovi primjeraka kopirani su iz Htaccess Guidea jer su savršen predložak za početak. Primijetite da na drugoj IP adresi nedostaje četvrti cijeli broj. Ovaj kodni blok cilja prvi IP (255.0.0.0) i svaki IP unutar raspona od 123.45.6.0-255, zatim dopustite sav drugi promet. Webmasteri to ne mogu koristiti toliko često kao druge tehnike, ali je korisno razumjeti.

    Spriječite popis direktorija

    Bit će trenutaka kada imate otvoreni direktorij koji jest postavite kako biste omogućili pregledavanje prema zadanim postavkama. To znači da korisnici mogu vidjeti sve datoteke navedene unutar unutarnje strukture direktorija, kao što je mapa sa slikama. Neki webmasteri ne žele dopustiti unos direktorija i, na sreću, isječak koda je prilično jednostavan za pamćenje.

    Opcije -Indeksi 

    Vidio sam ovaj odgovor bezbroj puta kroz Prelijevanje Stack-a i možda je to jedan od najjednostavnijih .htaccess pravila za pamćenje.

    Moguće je zapravo stvoriti više .htaccess datoteka unutar svakog od tih direktorija možda je jedan od njih zaštićen lozinkom, ali drugi nisu. I još uvijek možete zadržati Opcije -Indeksi tako da posjetitelji ne mogu pregledavati vašu web-lokaciju / slike / mapu.

    Zaštita lozinkom

    Lozinka štiti svoje direktorije je vrlo uobičajena procedura za osiguravanje administrativnih područja i drugih mapa presudnih za vašu web-lokaciju. Ponekad samo želite ponuditi pristup maloj skupini ljudi. Druga vremena lozinke sprečavaju hakere da pristupe pristupu upravnoj ploči vaše web-lokacije. No, u svakom slučaju, to je vrlo moćno rješenje za čitav niz problema.

    Tu je zgodan vodič za zaštitu lozinkom koji opisuje važne isječke koda. Morat ćete generirati datoteku s lozinkama koja pohranjuje vjerodajnice za korisničko ime i zaporku. Tako Apache može provjeriti što korisnik unosi kako bi vidio može li im se odobriti pristup. I primijetite kako ćete morati generirati uzorak za svoje korisničko ime i zaporku.

    Ja bih preporučio korištenje ovog htpassword generator tako da možete uštedjeti malo vremena. Sintaksa će uvijek biti savršena i ne morate sami šifrirati lozinku. A druga velika mogućnost je da zaštitite lozinkom cijeli popis direktorija. Ovaj primjer možemo vidjeti u galeriji isječaka koda CSS-Tricks.

    AuthType Basic AuthName "Ovo područje je zaštićeno lozinkom" AuthUserFile /full/path/to/.htpasswd Zahtijevanje valjanog korisnika 
    Sigurnost za WordPress

    Kako bismo ovu ideju zaštite lozinke dobro iskoristili, prikažimo primjer iz stvarnog svijeta. Ovaj kompliciraniji isječak koda će prisiliti autentifikaciju korisnika za bilo koga tko pristupa datoteci WordPress wp-login.php. Naći ćete izvorni izvor na Pitajte Apache koji ima brojne druge WordPress zaštitu isječke.

     Narudžba odbija, dopusti odbijanje od svih Zadovoljiti bilo koje ime autentiteta "Zaštićeno AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Osnovni zahtjev  

    A ako ćete slijediti ova .htaccess pravila, to bi također moglo pomoći u zaštiti lozinke administratora. Obično wp-login.php Datoteka će dobiti najviše pogodaka od ljudi koji pokušavaju na silu probiti vaš sustav. Dakle, čak i samo gore navedeni primjeri kodova više nego dovoljno sigurnosti za vašu WordPress web stranicu.

    Pravila za prepisivanje URL-a HTTP-a

    Prepisivanje URL-ova vjerojatno je jedna od najčešćih primjena .htaccess datoteka. WordPress zadane instalacije mogu zapravo generirati .htaccess datoteku izravno s upravljačke ploče. To vam omogućuje stvaranje lijepih URL-ova koji nemaju strukturu .php? P = 1.

    Želim pogledati ovaj primjer ponovnog pisanja kako ažurirati podcrtavanje na crtice od tada sadrži mnogo najvažnijih elemenata.

    (Html ​​| php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ (_ [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = upotreba: da] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = upotreba: da] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = upotreba: Da] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = upotreba: Da] PonoviCond% ENV: uscor ^ Da $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L] 

    RewriteEngine i RewriteBase može se uvijek postaviti na te točne vrijednosti. Ali trebate uključiti RewriteEngine da bi bilo što drugo moglo raditi. Postoji mnogo vodiča online objašnjava kako omogućiti mod_rewrite i vaš hosting provider također može pomoći.

    Primijetite da sintaksa slijedi obrazac RewriteRules na vrhu. Ova pravila su navikla podudaraju se s slučajevima koji se šalju kao HTTP zahtjev. Odgovara im RewriteRule koji u ovom slučaju sve preusmjerava na domenu d.com. Završne zagrade poput [R = 301, L] nazivaju se zastavama za prepisivanje koje su važne, ali više napredne teme.

    Sintaksa mod_rewrite je definitivno malo zbunjujuća, ali nemojte se uplašiti! Isječci mogu izgledati puno lakše u drugim primjerima.

    Kada samo početak, moram preporučiti ovaj mod_rewrite webapp koji vam pomaže generirati uzorke koda pomoću stvarne URL-ove. Ovo je sjajan alat jer možete pregledati različite stavke u sintaksi da biste vidjeli što oni zapravo rade u pravilima Rewrite. Ovdje je još jedan veliki vodič s jednostavnijim primjerom za proučavanje:

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

    Ne pokušavajte se odjednom preopteretiti. Trebalo mi je više od 3-4 mjeseca da stvarno počnem razumjeti kako prepisati URL-ove s [0-9a-z-Z] + i sličnim uzorcima. Nastavi vježbati i na vrijeme obećavam da ćeš dobiti takve stvari kao što je to zdravorazumsko znanje.

    Isječci koda za webmastere

    Volim jednostavne isječke i želim sastaviti ovu malu zbirku odgovarajućih .htaccess kodova za webmastere. Svaka od ovih ideja može se lijepo uklopiti u vašu datoteku .htaccess zajedno s drugim blokovima koda. Većina tih isječaka je izvrsna rješavanje brzih problema ili popravaka u okruženju vašeg web poslužitelja. Zamislite savršenu postavku Apachea za nove webmastere koji tek započinje online.

    Postavljanje DirectoryIndex

    Naredba za DirectoryIndex obično se koristi u jednom retku. Možete reći Apacheu koji dokumenti se u početku trebaju tretirati kao “glavni” dokument. Prema zadanim postavkama to će ciljne stavke kao što su index.html, index.php, index.asp i druge datoteke indeksa. No, pomoću ovog isječka koda koji sam kopirao u nastavku, imate mogućnost da ovaj korijenski dokument učinite što god želite.

    DirectoryIndex index.html index.cgi index.php 

    Redoslijed dokumenata trebao bi početi s najvažnijim i kretati se kroz redove do najmanje važnih. Dakle, ako nemamo HTML ili CGI datoteku onda će rezervno ići na index.php. Možete čak i imenovati te datoteke home.php ili someotherfile.php i to je sva valjana sintaksa.

    Prisilite WWW ili ne-WWW poddomenu

    Google može raditi s obje verzije domene web-lokacije ako ne navedete www.domain.com ili samo domain.com. Po mom iskustvu to je najbolja praksa odaberite jedan od njih i postavite ga kao jedini izbor putem .htaccess. Tada Google neće indeksirati različite URL-ove s nekim koji upućuju na WWW poddomenu, dok drugi ne.

    # Force WWW Poddomena RewriteEngine Na RewriteCond% HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Nema poddomena RewriteEngine On RewriteCond% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301] 

    Ovaj isječak koda dolazi iz arhive CSS-trikova i pruža vrlo praktično rješenje. Trebali biste ažurirati domenu tako da bude ono što vam je potrebno za vlastitu web-lokaciju. Inače će biti problema i odmah ćete primijetiti! Ali ja jako podupirem prisiljavanje na jednu od ove dvije opcije i ona je na vrhu moje liste zadataka nakon pokretanja nove web stranice.

    Izvršite preuzimanja medijskih datoteka

    Još jedan prilično važan isječak omogućuje prisiljavanje određenih vrsta medija umjesto da se prikazuje u pregledniku. Odmah mogu misliti o PDF dokumentima i MP3 audio datotekama koje se mogu prikazati u formatu za preuzimanje, ali kako to činite pobrinite se da se mogu preuzeti? Otkrio sam sličan članak objavljen na Htaccess vodiču koji opisuje ovaj isječak koda.

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

    Slobodno uključite još više vrsta datoteka na kraj ovog retka. Svi medijski formati koji koriste MIME-tip oktet-stream bit će dostupni za preuzimanje. Prisiljavanje na to .htaccess vrlo je izravan put kako bi se osiguralo da ljudi ne mogu vidjeti te datoteke u pregledniku.

    Prilagođeni dokumenti o pogreškama

    Još jedan posljednji komad koji želim dodati je puni predložak prilagođenih dokumenata o pogrešci. Obično se ti brojčani kodovi vide samo na kraju poslužitelja. Ali postoji mnogo tih dokumenata o pogreškama s kojima bi trebali biti upoznati. Može biti nekoliko primjera 403/404 pogreške i 301 preusmjeravanje.

    Ovaj predložak koda pogreške počinje na 100 i pomiče prema gore u 500 pogrešaka. Imajte na umu da vam očigledno ne treba sve ovo. Potrebne su samo najčešće pogreške, a možda i nekoliko nejasnih isječaka ako osjećate potrebu.

    Ako ne prepoznajete kod, samo ga potražite na Wikipediji da biste dobili bolje razumijevanje.

    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/501 500_INTERNAL_SERVER_ERROR ErrorDocument / 501_NOT_IMPLEMENTED ErrorDocument 502 / 502_BAD_GATEWAY ErrorDocument 503/504 503_SERVICE_UNAVAILABLE ErrorDocument / 504_GATEWAY_TIME_OUT ErrorDocument 505/506 505_VERSION_NOT_SUPPORTED ErrorDocument / 506_VARIANT_ALSO_VARIES ErrorDocument 507/510 507_INSUFFICIENT_STORAGE ErrorDocument / 510_NOT_EXTENDED 
    Online .htaccess Webapps
    • Htaccess Builder
    • .htaccess generator za preusmjeravanje
    • .htaccessEditor - Stvorite .htaccess datoteku
    • Mod Rewrite Generator od GenerateIt.net
    Ostali korisni resursi
    • .htaccess u Httpd Wiki
    • Službena Apache htaccess dokumentacija
    • Pitajte Apache blog - Htaccess Arhiva
    • Ultimate Vodič za htaccess i mod_rewrite
    • Sve što ste ikada željeli znati o Mod_Rewrite pravilima, ali se bojali pitati

    Završne misli

    Postoji toliko mnogo online resursa koji raspravljaju o .htaccess datotekama. Moji povezani članci i webapps su odlično mjesto za početak. Ali nastavite prakticirati nove ideje i nemojte se bojati testiranje isječaka koda. Dugo kao imate datoteku sigurnosne kopije onda možete isprobati sve što vam se sviđa i to je zabavno iskustvo učenja.

    Ako imate druge ideje ili prijedloge za upravljanje .htaccessom, molimo podijelite s nama u području za raspravu u nastavku.