Iesācēja ceļvedis .htaccess dizaineriem un izstrādātājiem
Starp daudzajiem dažādajiem rīkiem tīmekļa servera pielāgošanai .htaccess konfigurācijas fails ir milzīgs resurss. Jūs varat ātri atiestatīt dokumentu veidus, analizējot motorus, URL novirzīšanu, un daudzas citas būtiskas iezīmes. Tīmekļa pārziņi, kuri nav ļoti tehniski, nevar iekļūt jūsu .htaccess faila pārvaldīšanas specifikā. Bet tēma pati par sevi ir aizraujoša un vērtīga.
Šajā rakstā es vēlos iepazīstināt ar dažiem mērķtiecīgākajiem jēdzieniem tīmekļa pārziņiem un tīmekļa izstrādātājiem. Ikviens, kas ir savas tīmekļa vietnes atvēršana Apache serverī noteikti gribēs saprast, kā pārvaldīt savu .htaccess failu. Tā nodrošina tik daudz pielāgojamības un tā var strādāt jebkurā tīmekļa valodā no PHP uz Ruby.
Šīs ziņas apakšā esmu pievienojis dažas ārējās tīmekļa lapas palīdzēt jaunpienācējiem dinamiski izveidot savus .htaccess failus.
Kāpēc izmantot .htaccess failu?
Tas ir liels jautājums, un varbūt mums vajadzētu sākt ar atbildi “kas ir .htaccess fails”? Tas ir ļoti īpašs konfigurācijas fails, ko izmanto Apache tīmekļa serveris. .Htaccess fails var pateikt tīmekļa serverim kā prezentēt dažādus informācijas veidus un to, kā rīkoties ar dažādiem HTTP pieprasījumu galvenes.
Tiešām tas ir līdzeklis decentralizācija lai organizētu Web servera iestatījumus. Viens fiziskais serveris var turēt 50 dažādas tīmekļa vietnes, kurās katram ir savs .htaccess fails. Tas dod daudz pilnvaru tīmekļa pārziņiem, kas citādi būtu neiespējami. Bet kāpēc jums vajadzētu to izmantot?
Lielākais iemesls ir drošība. Jūs varat bloķēt noteiktus katalogus vai aizsargāt tos ar paroli. Tas ir lieliski piemērots privātiem projektiem vai jaunām satura pārvaldības sistēmām, kur vēlaties nedaudz papildu drošību. Taču ir arī bieži sastopami uzdevumi, piemēram, 404 kļūdu ziņojumu novirzīšana uz noteiktu tīmekļa lapu. Tas aizņem tikai vienu kodu un tas var būtiski ietekmēt apmeklētāju reakciju uz trūkstošajām lapām.
Patiesi, nav daudz, ko varu teikt, lai pārliecinātu citus, ka .htaccess fails ir saprotams. Kad to redzat darbībā, jūs varat atpazīt visu vērtību, kas nāk no šī sīkā konfigurācijas faila. Arī es ceru, ka šī raksta pārējā daļa var sniegt dažas ieskatu tēmas, lai tīmekļa pārziņus varētu pārvaldīt .htaccess konfigurācijā.
Atļaut / liegt piekļuvi
Ir iespējams atpazīt potenciālos surogātpasta apmeklētājus un liegt viņiem piekļuvi jūsu vietnei. Tas var būt nedaudz ekstrēms, tomēr, ja jūs zināt, ka persona vai cilvēku grupa ir mērķējusi jūsu vietni, ir dažas izvēles iespējas. Varat izvēlēties domēna nodošanu, lai liegtu vai aizliegtu apmeklētājus ar IP adresi.
rīkojums ļauj, liegt noliegt no 255.0.0.0 noliegt no 123.45.6. ļaut no visiem
Šie paraugu kodi tika kopēti no Htaccess rokasgrāmatas, jo tie ir ideāls veids, kā sākt darbu. Ievērojiet, ka otrajā IP adresē trūkst 4. vesels skaitlis. Šis kods bloķēs pirmo IP (255.0.0.0) un katru IP 123,45,6,0-255 diapazonā, pēc tam atļaujiet visu citu satiksmi. Tīmekļa pārziņi to nedrīkst izmantot tik bieži, kā citas metodes, bet ir lietderīgi saprast.
Novērst direktoriju sarakstu
Būs laiki, kad jums ir atvērta direktorija, kas ir iestatīts, lai pēc noklusējuma atļautu pārlūkošanu. Tas nozīmē, ka lietotāji var skatīt visus failus, kas iekļauti iekšējā direktoriju struktūrā, piemēram, attēlu mapē. Daži tīmekļa pārziņi nevēlas atļaut direktoriju sarakstu un par laimi koda fragmentu ir diezgan viegli atcerēties.
Iespējas -Iespējas
Esmu redzējis, ka šī atbilde sniegta neskaitāmas reizes Stack pārplūdes laikā, un tā var būt viens no vienkāršākajiem .htaccess noteikumiem, kas jāatceras.
Ir iespējams faktiski izveidot vairākus .htaccess failus katrā no šiem katalogiem tāpēc varbūt viens no tiem ir aizsargāts ar paroli, bet citi nav. Un jūs joprojām varat saglabāt Iespējas -Iespējas lai apmeklētāji nevar pārlūkot jūsu vietni / attēlus / mapi.
Paroles aizsardzība
Jūsu direktoriju aizsardzība ar paroli ir ļoti izplatīta procedūra nodrošināt administrācijas jomas un citas mapes, kas ir svarīgas jūsu vietnei. Dažreiz jūs vēlaties piedāvāt piekļuvi nelielai cilvēku grupai. Citreiz paroles ir jānovērš hackers piekļūt jūsu mājas lapas administrācijas panelis. Bet nu tā ir ļoti spēcīgs risinājums visai problēmai.
Ir ērta rokasgrāmata par paroles aizsardzību, kurā izklāstīti svarīgi koda fragmenti. Jums būs nepieciešams ģenerē paroles failu, kas saglabā lietotājvārdu / paroli. Tādā veidā Apache var pārbaudīt, ko lietotājs ievada, lai redzētu, vai viņiem būtu jāpiešķir piekļuve. Un pamaniet, kā jums būs nepieciešams izveidot paraugu jūsu lietotājvārdam un parolei.
Es ieteiktu izmantot šo htpassword ģeneratoru, lai jūs varētu ietaupīt mazliet laika. Sintakse vienmēr būs ideāla, un jums pašam parole nav jāšifrē. Un otra lieliska iespēja ir aizsargāt visu direktoriju sarakstu. Šo piemēru var redzēt CSS-Tricks koda fragmentu galerijā.
AuthType Basic AuthName "Šis apgabals ir aizsargāts ar paroli" AuthUserFile /full/path/to/.htpasswd Nepieciešams derīgs lietotājs
Drošība WordPress
Lai šo paroles aizsardzības ideju izmantotu labi, parādīsim reālu pasaules piemēru. Tas būs sarežģītāks koda fragments piespiediet lietotāja autentifikāciju ikvienam, kas piekļūst WordPress wp-login.php failam. Jūs atradīsiet sākotnējo avotu Ask Apache, kurā ir daudzi citi WordPress aizsardzības fragmenti.
Pasūtījuma noliegšana, atļauja liegt no visiem apmierināt jebkuru authName "aizsargāts ar AskApache" AuthUserFile /web/askapache.com/.htpasswda1 AuthType Basic Nepieciešams derīgs lietotājs
Un, ja jūs gatavojaties sekot šiem .htaccess noteikumiem, tas var arī palīdzēt aizsargāt administratora apgabalu. Parasti wp-login.php fails saņems lielāko daļu hits no cilvēkiem, kas mēģina brutālu spēku savā sistēmā. Tātad, pat tikai iepriekšminētie paraugu kodi būtu vairāk nekā pietiekami daudz papildu drošības jūsu WordPress vietnei.
HTTP URL pārrakstīšanas noteikumi
URL pārrakstīšana, iespējams, ir viens no visbiežāk lietotajiem .htaccess failiem. WordPress noklusējuma instalācijas faktiski var būt ģenerēt .htaccess failu tieši no administrācijas paneļa. Tas ļauj jums izveidot diezgan URL, kuriem nav .php? P = 1 struktūras.
Es vēlos apskatīt šo pārrakstīšanas piemēru kā atjaunināt svītrojumus kopš tā laika satur daudz svarīgāko elementu.
Opcijas + FollowSymLinks RewriteEngine On RewriteBase / RewriteRule! (Html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( [^ _] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Jā] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _ ] *) _ (. *) $ $ 1- $ 2- $ 3- $ 4 [E = uscor: Jā] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ $ 1- $ 2- $ 3 [E = uscor: Jā] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Jā] RewriteCond% ENV: uscor ^ Jā $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L]
RewriteEngine un RewriteBase visbiežāk var iestatīt šīs precīzās vērtības. Bet jums ir nepieciešams ieslēgt RewriteEngine, lai kaut kas cits darbotos. Ir daudz tiešsaistes rokasgrāmatu, kas izskaidro, kā mod_rewrite un jūsu hostinga pakalpojumu sniedzējs var arī palīdzēt.
Ievērojiet, ka sintakse notiek pēc modeļa RewriteRules virsotnē. Šie noteikumi ir pieraduši atbilst gadījumiem, kas tiek nosūtīti kā HTTP pieprasījums. Uz šīm atbildēm atbild RewriteRule, kas šajā gadījumā novirza visu uz domēnu d.com. Noslēguma kronšteini, piemēram, [R = 301, L], tiek saukti par pārrakstīt karodziņiem, kas ir svarīgi, bet vairāk par papildu tēmu.
Mod_rewrite sintakse noteikti ir nedaudz mulsinoša, bet nav iebiedēta! Citos piemēros fragmenti var izskatīties daudz vieglāk.
Kad tikko sākat darbu, man ir jāiesaka šis mod_rewrite webapp, kas palīdz izveidot kodu paraugus, izmantojot reālus URL. Tas ir lielisks rīks, jo jūs varat meklēt dažādus sintakses elementus, lai redzētu, ko viņi reāli veic Rewrite noteikumos. Šeit ir vēl viena lieliska apmācība ar vienkāršāku piemēru, lai mācītos:
RewriteRule ^ dir / ([0-9] +) /? $ /Index.php?id=$1 [L]
Nemēģiniet sevi uzreiz pārslogot. Man bija vajadzīgi vairāk nekā 3-4 mēneši, lai sāktu saprast, kā pārrakstīt URL ar [0-9a-zA-Z] + un līdzīgiem modeļiem. Turpiniet praktizēt un laikā es apsolu, ka jūs saņemsiet šīs lietas, piemēram, tās, kas ir saprāts.
Kodu fragmenti tīmekļa pārziņiem
Es mīlu viegli lietojamus fragmentus, un es vēlos apkopot šo mazo atbilstošu .htaccess kodu kolekciju tīmekļa pārziņiem. Katra no šīm idejām var labi iederēties jūsu .htaccess failā kopā ar citiem koda blokiem. Lielākā daļa no šiem fragmentiem ir lieliski ātru problēmu vai labojumu risināšana jūsu tīmekļa servera vidē. Iedomājieties perfektu Apache iestatījumu, kas paredzēts pavisam jauniem tīmekļa pārziņiem, kas tikko sāksies tiešsaistē.
Iestatīšana DirectoryIndex
DirectoryIndex komandu parasti izmanto vienā rindā. Jūs varat pateikt Apache, kuri dokumenti sākotnēji jāuzskata par “galvenais” dokumentu. Pēc noklusējuma šī būs atlasiet vienumus, piemēram, index.html, index.php, index.asp un citus indeksu failus. Bet, izmantojot šo koda fragmentu, ko es esmu nokopējis tālāk, jums ir iespēja padarīt šo saknes dokumentu visu nepieciešamo.
DirectoryIndex index.html index.cgi index.php
Dokumentu secībai jāsākas ar vissvarīgākajiem un jāpārvietojas līdz vismazāk svarīgajiem. Tātad, ja mums nav HTML vai CGI faila, tad rezerves būs index.php. Un jūs pat varētu nosaukt šos failus home.php vai someotherfile.php un tā ir derīga sintakse.
Piespiediet WWW vai Non-WWW apakšdomēnu
Ja jūs nenorādīsiet, Google var strādāt ar abām jūsu vietnes domēna versijām www.domain.com vai vienkārši domain.com. Manā pieredzē tā ir labākā prakse izvēlēties vienu no šiem un iestatiet to kā vienīgo izvēli izmantojot .htaccess. Pēc tam Google neveiks dažādus URL ar dažiem norādījumiem uz WWW apakšdomēnu, bet citi to nedara.
# Force WWW apakšdomēns RewriteEngine On RewriteCond% HTTP_HOST ^ domēns.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Nav apakšdomēna atkārtoti pārrakstītsErns par atkārtotu ierakstu% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301]
Šis koda fragments nāk no CSS-Tricks arhīva un nodrošina ļoti ērtu risinājumu. Jums vajadzētu atjaunināt domēnu, lai tas būtu jūsu mājas lapā. Pretējā gadījumā būs problēmas, un jūs uzreiz pamanīsiet! Bet es ļoti atbalstu to, ka piespiedu vienu no šīm divām iespējām, un tas ir mana uzdevumu saraksta augšpusē pēc jaunas tīmekļa vietnes palaišanas.
Piespiediet multivides failu lejupielādes
Vēl viens diezgan svarīgs fragments ļauj piespiest noteiktus multivides veidus lejupielāde, nevis tiek parādīta pārlūkprogrammā. Tūlīt es varu iedomāties PDF dokumentus un MP3 audio failus, kas var būt lejupielādējami, bet kā jūs pārliecinieties, vai tie ir lejupielādējami? Es atklāju līdzīgu rakstu, kas publicēts Htaccess rokasgrāmatā, kurā izklāstīts šis koda fragments.
AddType lietojumprogramma / octet-stream .zip .mp3 .mp4
Varat brīvi iekļaut vēl vairāk filety tipu šīs līnijas beigās. Visi multivides formāti, kas izmanto okteta plūsmas MIME veidu, būs lejupielādējami. Šī piespiešana, izmantojot .htaccess, ir ļoti tiešs maršruts, lai nodrošinātu, ka cilvēki nevar skatīt šos failus pārlūkprogrammā.
Pielāgotu kļūdu dokumenti
Viens pēdējais pēdējais gabals, ko es vēlos pievienot, ir pilnīgs pielāgotu kļūdu dokumentu veidne. Parasti šie numuru kodi ir redzami tikai servera beigās. Bet ir daudz šo kļūdu dokumentu, kas jums būtu jāzina. Var būt daži piemēri 403/404 kļūdas un 301 novirzīšana.
Šī kļūdas koda veidne sākas 100 un pārvietojas uz 500 kļūdām. Lūdzu, ņemiet vērā, ka jums acīmredzot nav vajadzīgas visas šīs. Būtu nepieciešamas tikai visbiežāk sastopamās kļūdas un, iespējams, daži neskaidri fragmenti, ja jūtat vajadzību.
Ja jūs neatpazīstat kodu, vienkārši skatiet to uz Vikipēdijas, lai iegūtu labāku izpratni.
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
Tiešsaistes .htaccess Webapps
- Htaccess veidotājs
- .htaccess novirzīšanas ģenerators
- .htaccessEditor - izveidojiet .htaccess failu
- Mod Rewrite Generator ģenerators ar GenerateIt.net
Citi noderīgi resursi
- .htaccess Httpd Wiki
- Oficiālā Apache htaccess dokumentācija
- Uzdodiet Apache Blog - Htaccess arhīvu
- Ultimate Guide to htaccess un mod_rewrite
- Viss, ko jūs kādreiz gribējāt zināt par Mod_Rewrite noteikumiem, bet baidījās jautāt
Galīgās domas
Tiešsaistes diskusijās par .htaccess failiem ir tik daudz neskaitāmi resursi. Mani saistītie raksti un tīmekļa vietnes ir lieliska vieta, kur sākt. Bet turpiniet praktizēt jaunas idejas un nebaidieties koda fragmentu pārbaude. Kamēr jums ir dublējuma fails tad jūs varat izmēģināt visu, kas jums patīk, un tas ir jautri mācīšanās pieredze.
Ja jums ir citas idejas vai ieteikumi par .htaccess pārvaldību, lūdzu, dalieties ar mums tālāk norādītajā diskusiju zonā.