Vodnik za začetnike .htaccess za oblikovalce in razvijalce
Med različnimi orodji za prilagoditev spletnega strežnika je .htaccess konfiguracijska datoteka izjemna prednost. Ti lahko hitro ponastavite vrste dokumentov, razčlenjene motorje, preusmeritve URL-jev, in številne druge ključne značilnosti. Webmasters, ki niso zelo tehnični ne sme priti v posebnosti upravljanja svoje. Htaccess datoteko. Toda sama tema je zanimiva in vredna preiskave.
V tem članku želim predstaviti nekatere bolj smiselne koncepte za webmastere in spletne razvijalce. Kdorkoli je zagon lastne spletne strani na strežniku Apache bo zagotovo želel razumeti, kako upravljati svojo datoteko .htaccess. To ponuja toliko prilagodljivosti in to lahko deluje v vseh spletnih jezikih od PHP do Ruby.
Na dnu te objave sem dodal nekaj zunanjih spletnih aplikacij pomagati novinkam dinamično ustvarjati svoje datoteke .htaccess.
Zakaj uporabljati datoteko .htaccess?
To je veliko vprašanje in morda bi morali začeti z odgovorom “kaj je .htaccess datoteka”? To je zelo posebna konfiguracijska datoteka, ki jo uporablja Apache spletni strežnik. Datoteka .htaccess lahko spletnemu strežniku pove kako predstaviti različne oblike informacij in kako obravnavati različne glave zahtev HTTP.
Res je, da je sredstvo decentralizacijo nastavitve spletnega strežnika. En fizični strežnik ima lahko 50 različnih spletnih mest, vsaka s svojo lastno datoteko .htaccess. Zagotavlja veliko moči za webmastere, kar bi bilo sicer nemogoče. Toda zakaj bi ga uporabili?
Največji razlog je varnost. Ti lahko zaklenete določene imenike ali jih zaščitite z geslom. To je super za zasebne projekte ali nove sisteme za upravljanje vsebin, kjer želite malo dodatne varnosti. Obstajajo pa tudi pogoste naloge, kot je preusmeritev 404 sporočil o napakah na določeno spletno stran. To zahteva samo eno vrstico kode in lahko dramatično vpliva na odziv obiskovalcev na manjkajoče strani.
Resnično ne morem reči veliko, da bi prepričal druge, da je vredno razumeti datoteko .htaccess. Ko jo vidite v akciji, lahko prepoznate vse vrednosti, ki izvirajo iz te majhne konfiguracijske datoteke. Prav tako upam, da bo preostanek tega članka predstavil nekaj vpoglednih tem, ki bi webmasterje pripeljale v luči upravljanja .htaccess konfiguracije.
Dovoli / zavrni dostop
Možno je prepoznati potencialne obiskovalce neželene pošte in jim onemogočiti dostop do vašega spletnega mesta. To je lahko malo ekstremno, vendar če veste, da je oseba ali skupina ljudi ciljala vašo spletno stran, lahko izbirate med nekaterimi možnostmi. Lahko izberete napotitev domene, s katero boste zavrnili ali prepovedali obiskovalce po naslovu IP.
Naročilo dovoli, zavrni deny iz 255.0.0.0 zavrni iz 123.45.6. od vseh
Te vzorčne kode so bile kopirane iz vodnika Htaccess, saj so idealna predloga za začetek. Opazite, da na drugem naslovu IP manjka četrto celo število. Ta blok kode se bo usmeril na prvi IP (255.0.0.0) in vsak IP v območju 123.45.6.0-255, nato dovolite ves ostali promet. Spletni skrbniki tega ne smejo uporabljati tako pogosto kot druge tehnike, vendar je koristno razumeti.
Prepreči seznam imenikov
Včasih boste imeli odprt imenik, ki je nastavite tako, da privzeto omogoči brskanje. To pomeni, da si lahko uporabniki ogledajo vse datoteke, ki so navedene v notranji strukturi imenika, na primer mapo s slikami. Nekateri spletni skrbniki ne želijo dovoliti vnosa v imenik in na srečo je odrezek kode zelo preprost.
Možnosti -Indeksi
Videl sem ta odgovor, ki je bil predstavljen neštetokrat skozi Preliv Stackov in je lahko eden od najlažjih .htaccess pravil, ki jih je treba zapomniti..
Možno je dejansko ustvarite več datotek .htaccess znotraj vsakega od teh imenikov zato je morda eden od njih zaščiten z geslom, drugi pa niso. In še vedno lahko obdržite Možnosti -Indeksi tako da obiskovalci ne morejo brskati po vaši spletni strani / slikah / mapi.
Zaščita z geslom
Zaščita vaših imenikov z geslom je zelo pogost postopek varovanje upravnih področij in drugih map, ki so ključnega pomena za vaše spletno mesto. Včasih boste želeli samo ponuditi dostop do majhne skupine ljudi. Včasih gesla preprečujejo hekerjem dostop do upravne plošče vaše spletne strani. Ampak to je zelo učinkovita rešitev za številne težave.
Na voljo je priročen priročnik za zaščito z geslom, ki opisuje pomembne kode. Morali boste ustvarite datoteko z gesli, ki shrani poverilnice uporabniškega imena in gesla. Tako Apache lahko preveri, kaj uporabnik vnese, da bi videl, ali jim je treba dovoliti dostop. In opazite, kako boste morali ustvariti vzorec za vaše uporabniško ime in geslo.
Jaz bi priporočal uporabo tega htpassword generator, tako da lahko prihranite nekaj časa. Sintaksa bo vedno izšla popolna in ne boste morali šifrirati gesla sami. Druga velika možnost je, da zaščitite gesla za celoten seznam imenikov. Ta primer lahko vidimo v galeriji odlomkov kode CSS-Tricks.
AuthType Basic AuthName "To območje je zaščiteno z geslom" AuthUserFile /full/path/to/.htpasswd Zahtevaj veljavnega uporabnika
Varnost za WordPress
Če želimo to idejo za zaščito z geslom dobro uporabiti, prikažimo primer iz resničnega sveta. Ta bolj zapleten odrezek kode bo prisilno overjanje uporabnika za vse, ki dostopajo do datoteke WordPress wp-login.php. Izvirni vir boste našli na Ask Apache, ki ima številne druge odrezke WordPress zaščite.
Naročilo zavrni, dovoli Deny iz vsega zadovoljivega Katera koli AuthName "Zaščitena z AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Osnovna zahteva veljaven uporabnik
In če boste sledili tem .htaccess pravilom, boste lahko pomagali tudi pri zaščiti gesla za admin. Značilno je wp-login.php Datoteka bo dobila največ zadetkov od ljudi, ki poskušajo brutalno izsiliti svojo pot v vaš sistem. Torej bi bilo zgolj zgornje vzorčne kode več kot dovolj dodatne varnosti za vašo WordPress spletno stran.
Pravila za prepis URL-jev HTTP
Prepisovanje URL-jev je verjetno ena najpogostejših uporab za datoteke .htaccess. WordPress privzete namestitve lahko dejansko ustvarite datoteko .htaccess neposredno iz nadzorne plošče. To vam omogoča, da ustvarite lepe URL-je, ki nimajo strukture .php? P = 1.
Želim pogledati ta primer za ponovno pisanje kako posodobiti podčrtaje do pomišljajev od takrat vsebuje veliko najpomembnejših elementov.
(Html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ (_ [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uporabnik: da] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uporabnik: da] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: da] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uporabnik: da] RewriteCond% ENV: uscor ^ Da $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L]
RewriteEngine in RewriteBase lahko vedno nastavite na točne vrednosti. Ampak potrebujete RewriteEngine vklopljen za kaj drugega, da dela. Obstaja veliko vodnikov na spletu, ki pojasnjujejo, kako omogočiti mod_rewrite in vašemu ponudniku gostovanja tudi pomoč.
Obvestilo o skladnji sledi vzorcu RewriteRules na vrhu. Ta pravila so uporabljena ujemajo s primeri, ki so poslani kot zahteva HTTP. Na njih odgovarja RewriteRule, ki v tem primeru vse preusmeri na domeno d.com. Končni oklepaji, kot je [R = 301, L], se imenujejo pomembne zastavice za prepisovanje, vendar bolj kot napredna tema.
Sintaksa mod_rewrite je vsekakor malo zmedena, vendar se je ne sme ustrašiti! Odseki lahko v drugih primerih izgledajo veliko lažje.
Ko samo začnete, moram priporočiti ta mod_rewrite webapp, ki vam pomaga ustvariti vzorčne kode z dejanskimi URL-ji. To je sijajno orodje, ker lahko poiščete različne elemente v sintaksi, da vidite, kaj dejansko delajo v pravilih za pisanje. Tu je še ena odlična vadnica z enostavnejšim primerom za študij:
RewriteRule ^ dir / ([0-9] +) /? $ /Index.php?id=$1 [L]
Ne poskušajte se preobremeniti naenkrat. Potreboval sem več kot 3-4 mesece, da sem resnično začel razumeti, kako prepisati URL-je s [0-9a-zA] in podobnimi vzorci. Nadaljuj z vadbo in v času, ko obljubim, da boš dobil te stvari, kot je znanje zdrave pameti.
Odrezki kode za spletne skrbnike
Ljubim enostaven za uporabo odrezke in želim, da skupaj to majhno zbirko ustreznih. Htaccess kode za webmastere. Vsaka od teh idej se lahko lepo prilega v vašo datoteko .htaccess skupaj z drugimi kodnimi bloki. Večina teh odlomkov je odlična reševanje hitrih težav ali popravkov v okolju spletnega strežnika. Predstavljajte si popolno nastavitev Apachea za povsem nove spletne skrbnike, ki se začnejo na spletu.
Nastavitev DirectoryIndex
Ukaz za DirectoryIndex se pogosto uporablja v eni vrstici. Apacheu lahko poveste, katere dokumente je treba najprej obravnavati kot “main” dokument. Privzeto bo to ciljne elemente, kot so index.html, index.php, index.asp in druge indeksne datoteke. Toda s tem odrezkom kode, ki sem ga kopiral spodaj, lahko ta korenski dokument naredite kar želite.
DirectoryIndex index.html index.cgi index.php
Vrstni red dokumentov se mora začeti z najpomembnejšim in se premikati po vrstah do najmanj pomembnih. Torej, če nismo imeli datoteke HTML ali CGI, se bo pomožna funkcija vrnila index.php. Lahko bi celo poimenovali te datoteke home.php ali someotherfile.php in je vsa veljavna skladnja.
Prisili WWW ali ne-WWW poddomeno
Google lahko deluje z obema različicama domene vaše spletne strani, če tega ne določite www.domain.com ali samo domain.com. Po mojih izkušnjah je najboljša praksa izberite eno od teh in jo nastavite kot edino izbiro prek .htaccess. Nato Google ne bo indeksiral različnih URL-jev, ki kažejo na poddomeno WWW, medtem ko drugi ne.
# Force WWW Poddomena RewriteEngine Na RewriteCond% HTTP_HOST ^ domain.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # No Subdomain RewriteEngine On RewriteCond% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301]
Ta odrezek kode prihaja iz arhiva CSS-Tricks in ponuja zelo priročno rešitev. Domeno morate posodobiti tako, da je vse, kar potrebujete za lastno spletno mesto. V nasprotnem primeru bo prišlo do težav in takoj boste opazili! Toda močno podpiram prisiljevanje ene od teh dveh možnosti in je na vrhu seznama mojih nalog po uvedbi nove spletne strani.
Nalaganje datotek v datoteki
Še en dokaj pomemben delček omogoča, da se nekatere vrste medijev prisili namesto prikaza v brskalniku. Takoj se lahko spomnim dokumentov PDF in avdio datotek MP3, ki so lahko predstavljeni v formatu, ki ga je mogoče prenesti, vendar kako poskrbite, da bodo prenosljivi? Našel sem podoben članek, objavljen na Htaccess Guide, ki opisuje ta odrezek kode.
AddType application / octet-stream .zip .mp3 .mp4
Na koncu te vrstice lahko vključite še več vrst datotek. Vse oblike predstavnosti, ki uporabljajo tip MIME za oktetni tok, bodo prenosljive. Prisiljevanje s pomočjo .htaccessa je zelo neposredna pot, ki zagotavlja, da ljudje ne morejo videti teh datotek v brskalniku.
Dokumenti napak po meri
Zadnji zadnji del, ki ga želim dodati, je popolna predloga za dokumente o napakah po meri. Običajno se te številske kode vidijo le na koncu strežnika. Vendar pa je veliko teh dokumentov o napakah, ki bi jih morali poznati. Mogoče je nekaj primerov 403/404 napake in 301 preusmeritev.
Predloga te kode napake se začne pri 100 in premakne navzgor v 500 napak. Prosimo, upoštevajte, da očitno ne potrebujete vsega tega. Potrebne so samo najpogostejše napake in morda nekaj nejasnih odrezkov, če čutite potrebo.
Če kode ne prepoznate, jo poiščite na Wikipediji, da boste bolje razumeli.
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
Spletne spletne aplikacije .htaccess
- Htaccess Builder
- .htaccess preusmeritev generator
- .htaccessEditor - Ustvarite datoteko .htaccess
- Mod Rewrite Generator od GenerateIt.net
Drugi koristni viri
- .htaccess v Httpd Wiki
- Uradna Apache htaccess dokumentacija
- Vprašajte Apache Blog - Htaccess Arhivi
- Ultimate Guide to htaccess in mod_rewrite
- Vse, kar ste si kdaj želeli vedeti o pravilih Mod_Rewrite, vendar ste se bali vprašati
Končne misli
Obstaja toliko neštetih virov, ki razpravljajo o .htaccess datotekah. Moji povezani članki in spletne aplikacije so odličen kraj za začetek. Ampak še naprej vadite nove ideje in se ne bojte preizkušanje odrezkov kode. Dokler imate varnostno kopijo datoteke potem lahko preizkusite vse, kar vam je všeč in je zabavna učna izkušnja.
Če imate druge ideje ali predloge v zvezi z upravljanjem .htaccess, prosimo, da delite z nami v spodnjem razpravnem prostoru.