Htaccess failas pakeičia serverio nustatymus, kurie turi įtakos. Kaip sukurti ir tinkamai sukonfigūruoti htaccess failą? Uždrausti prieigą visiems, išskyrus nurodytus IP adresus

(11 )

Failas.htaccess yra specializuotas paslaugų dokumentas, naudojamas „Apache“ žiniatinklio serverio ir panašių serverių nustatymams keisti. Paprasčiau tariant, jo naudojimas padės pakeisti svetainės veikimą: sukonfigūruoti prieigą prie aplankų, failų ir kitos medžiagos, nurodyti nuorodų perrašymo taisykles ir įspėjimus apie klaidas. Tuo pačiu metu jūs nekeičiate viso serverio veikimo, kai kuriems vartotojams konfigūruodami tik papildomus parametrus.

Kai svetainės savininkas dirba su savo projektu, tikrai ateis laikas, kai jam reikės naudoti .htaccess failą. Nepaisant didžiulės svarbos, daugeliui žiniatinklio valdytojų, ypač pradedantiesiems, jis lieka nežinomas, nes norint jį suprasti, reikia gerai išmanyti ne tik SEO, bet ir programavimą.

Šiame straipsnyje mes padėsime suprasti, kodėl reikalingas .htaccess ir kaip jį sukonfigūruoti. Tai labai svarbu, nes atveria lanksčias galimybes svetainių savininkams, norintiems užtikrinti patikimą savo išteklių saugumą.

Šiame faile svetainių kūrėjai gali:

  • Sukonfigūruokite paprastas peradresavimo direktyvas (peradresavimus). Tai leis, pakeitus domeną, nukreipti lankytoją iš ankstesnės svetainės puslapio į naują projektą.
  • Peradresuoti iš URL su www į domeną be www. Arba į https įdiegus ssl sertifikatą.
  • Apibūdinkite klaidas. Tai apima 404 klaidą pakeitus reikiamu puslapiu.
  • Failų kaupimas talpykloje. Tai daroma siekiant paspartinti žiniatinklio šaltinio veikimą.
  • Sukurkite CNC. Tai yra „žmogui skaitomi URL“, tai yra, formuojamos interneto vartotojams suprantamos nuorodos.
  • Pakeiskite puslapių šaltinio kodą.
  • Valdykite prieigą prie failų ir katalogų naudodami slaptažodžius.
  • Nurodykite indekso failą.
  • Leisti ir blokuoti prieigą iš konkrečių IP adresų.
  • Tvarkykite paieškos robotus svetainėje.
  • Sukonfigūruokite sudėtingas direktyvas.

Pagrindinis .htaccess tikslas yra pritaikyti svetainę ir katalogus pagal tam tikrus reikalavimus. Tai yra, per šį failą SEO specialistai ir programuotojai gali keisti žiniatinklio serverio nustatymus net neturėdami administratoriaus teisių. Tačiau pakeitimai daromi tik konkrečiai svetainei ir jie niekaip neįtakoja paties serverio.

Serverio konfigūracijos keičiamos tik naudojant direktyvas (komandas), kuriose yra „raktas“ ir jo „reikšmė“. Visos svarbiausios direktyvos, leidžiančios valdyti serverį, yra pagrindiniame konfigūracijos faile, vadinamame httpd.conf. Problema ta, kad paprastas vartotojas neturi galimybės jo pasiekti, nes jame yra daug parametrų, nuo kurių priklauso viso serverio našumas. Štai kodėl .htaccess yra aktualus, leidžiantis pakeisti kai kurias direktyvas pagrindiniame faile.

Visi pagalbinio failo pakeitimai turi įtakos visam katalogui, kuriame jis yra. Ir jei įkelsite šį dokumentą į pagrindinį svetainės aplanką, pakeitimai turės įtakos visam ištekliui.

Kur yra .htaccess?

Galite lengvai patikrinti, ar turite paslaugos failą. Nuo daugelio kitų dokumentų jis skiriasi tuo, kad turi tik pavadinimo iš žodžio plėtinį, o paties pavadinimo nėra. Taip, mes visi įpratę matyti failus su pavadinimu iš žodžio ir plėtiniu po taško, kurį sudaro tik 2-3 raidės. Tačiau tušti pavadinimai leidžia failus ir aplankus padaryti „paslėptus“, atviro kodo. Iš to išplaukia, kad .htaccess lieka nematomas paprastiems vartotojams, todėl jie negalės jo pakeisti.

Tačiau šis failo „slėpimo“ būdas turi ir neigiamą pusę. Standartiniuose „Windows“ ir „Mac“ FTP klientuose dokumentas labai dažnai lieka nematomas vartotojams, todėl jie klaidingai mano, kad jo tiesiog nėra. Todėl žmogus sukuria naują failą, kuriame įveda savo konfigūracijas, klaidų tvarkymo kodus, sukuria prieigą prie aplankų ir tt Gerai, kad dauguma palieka vietos diske, kuriame htaccess failas jau įdiegtas automatiškai.

Bet jei jo nerandate, pabandykite eiti į failų tvarkyklę, kuri yra integruota jūsų priegloboje. Jis gali rodyti paslėptus failus ir katalogus. Ieškokite jo public_html, o tada naudodami programoje įdiegtą teksto rengyklę redaguokite ir išsaugokite failą, po kurio jis pats bus įkeltas į serverį.

Jei nurodytame kelyje nerandate dokumento, sukurkite savo. Gali atsitikti taip, kad ekrane pasirodys klaida. Tai reiškia, kad ši priegloba uždraudė kurti paslaugų failą.

Nebrangios prieglobos paslaugos dažnai neleidžia klientams kurti ir redaguoti tokio dokumento. Taigi jie skatinami naudotis savo paslaugomis brangesniais įkainiais, kur tai leidžiama.

Kaip teisingai sukurti .htaccess

Norėdami tai padaryti, jums reikės labiausiai paplitusio teksto rengyklės, pavyzdžiui, „Notepad“, kurią galima rasti bet kuriame kompiuteryje:

  1. Atidarykite užrašų knygelę, nieko į ją nerašykite.
  2. Pasirinkite elementą "Failas" ir paspauskite "Išsaugoti kaip".
  3. Priešais elementą pasirodys langas "Failo tipas" pasirinkite « Visitipai" arba "Visi failai".
  4. Eilėje "Failo pavadinimas"įveskite . htacces ir spustelėkite "Sutaupyti".

Tada dar kartą patikrinkite, ar dokumentas buvo sukurtas teisingai. Būtinai patikrinkite, ar išsaugojote jį kaip .htaccess.txt. Tada įkelkite failą į serverio šakninį aplanką ir jei nematote 500 klaidos, vadinasi, padarėte viską teisingai.

Nuo šiol galite redaguoti failą, todėl galėsite lanksčiau tvarkyti savo svetainę.

Naudojimo pavyzdžiai

Pažvelkime į populiariausias .htaccess komandas.

Peradresuoti

Šios direktyvos naudojamos pavydėtinai reguliariai. Jie leidžia nukreipti lankytoją iš senojo URL į naują puslapį. Tai įmanoma dėl 301 peradresavimo. Tiesiog įrašykite failo kodą:

Peradresuoti 301 /old_URL.html http://www.your_site_name.ru/new_URL.html

Apskritai direktyva bus rodoma taip:

Peradresuoti URL_LOCAL URL_REDIRECT

URL_VIETINIS– tai senasis adresas, iš kurio perkeliamas vartotojas.

URL_PERDIRBTI– naujas URL, į kurį perkeliamas puslapis.

Lauke [ statusas] gali turėti šias reikšmes:

  1. 301 – puslapis perkeltas visam laikui.
  2. 302 – puslapis laikinai perkeltas.
  3. 303 – žiūrėkite kitą puslapį.
  4. 410 – puslapis ištrintas.

Mod_rewrite (sudėtingos perdavimo direktyvos)

Šis modulis yra „Apache“. Jame yra daugybė skirtingų pažangaus adresų valdymo direktyvų. Tarp pagrindinių yra:

1. Pagrindinio veidrodžio nurodymas

Sukurta konvertuoti domeną iš www į ne www URL. Pakanka įvesti taisyklę:

RewriteEngine On # įgalina RewriteCond %(HTTP_HOST) ^www.your_site_name\ru$ #sąlygos norint pradėti peradresavimą RewriteRule ^(*)$ http://your_site_name_/$1 #conversion rule

2. Perkelti į https

Šiandien Google paieškos sistema aktyviai skatina svetainių savininkus naudoti saugų ryšį, kuriam būtina nukreipti vartotojus iš http į https naudojant kodą:

„RewriteEngine“ įjungta „RewriteCond“ %(HTTPS) !on perrašymo taisyklė (.*) https://%(HTTP_HOST)%(REQUEST_URL)

3. Adreso pabaigoje pasvirasis brūkšnys

Jei nenorite, kad puslapio URL baigtųsi katalogo pavadinimu http://name_of_your_site.ru/catalog, įveskite kodą į failą:

RewriteCond %(REQUEST_URI) /+[^\.]+$ Perrašymo taisyklė ^(.+[^/])$ %(REQUEST_URI)/

Įvykdžius šią komandą, ateityje po adreso bus automatiškai pridėtas pasvirasis brūkšnys: http://name_of_your_site.ru/catalog/

4. Domeno perkėlimas

Keisdami svetainės pavadinimą nepamirškite .htaccess nurodyti:

RewriteEngine naudojant RewriteCond %(HTTP_HOST) ^www\.yoursite.ru\.ru$ RewriteRule ^(.*)$ http://www.your-site.ru/$1

Optimizuojant svetainę ir „Yandex“, ir „Google“, domeno pavadinimo pakeitimas gali turėti nemalonių pasekmių. Instrukcijos robots.txt, skirtos Yandex, apima 301 peradresavimą. Bet to galima išvengti pridedant taisyklę prie kodo:

RewriteEngine naudojant RewriteCond %(REQUEST_FILENAME) robots.txt$ RewriteRule ^([^/]+) $1 [L] RewriteCond %(HTTP_HOST) ^mano svetainė\.ru Perrašymo taisyklė ^(.*)$ http://www.mano svetainė .ru/$1

5. Draudžiamos komandos paieškos robotui

.htaccess, kaip ir robots.txt, galite blokuoti prieigą prie svetainės paieškos variklių robotams:

RewriteEngine ant RewriteCond %(USER_AGENT) Googlebot RewriteRule .* – [F] # F – pateikia klaidą 403 – neleidžiama tikrinti

Apdorojant įvyko klaida

Beveik kiekvienas interneto vartotojas susidūrė su klaida 404 nerasta (puslapis nerastas arba ištrintas). Tačiau yra daugybė kitų klaidų, apie kurias tikriausiai negirdėjote.

Paslaugos faile galite užregistruoti failą, kad jis būtų rodomas klaidos metu. Bet pirmiausia turite sukurti tą patį failą html plėtinyje ir parašyti jame, kas yra ši klaida. Tada, atsižvelgdami į naudojamą klaidą, prie savo encoding.htaccess pridėkite:

ErrorDocument 404 /siteerror404.html

Rodyklės dokumentai

Lankytojui apsilankius svetainėje, iš karto atidaromas indekso failas index.xml. Rodyklės puslapį galite pakeisti bet kuriuo kitu, pridėdami šį kodą:

DirectoryIndex pavadinimas.xml

Arba pridėkite kelis tokius puslapius ir paieškos sistema juos suras atitinkama seka:

DirectoryIndex index.html index.php index.pl

Nurodant kodavimą

Ši funkcija reikalinga norint užtikrinti, kad tekstas būtų rodomas teisingai vartotojo ekrane. Priešingu atveju vietoj įprasto skaitomo puslapio jis matys keistus simbolius. Šiandien plačiai naudojamas šis kodavimas: Windows-1251 – kirilica irUTF-8 – dviejų baitų kodavimas. Norint pasirinkti paslaugų dokumento kodavimą, naudojama ši direktyva:

AddDefaultCharset WINDOWS-1251

Ir kad ateityje, kai įkelsite failus į serverį, nekiltų problemų, nurodykite, kad visi nauji failai bus konvertuoti į panašią koduotę:

CharsetSourceEnc WINDOWS-1251

Katalogų slaptažodžių nurodymas

Norėdami tai padaryti, į katalogą, kurį norite uždaryti, parašykite:

AuthName „Reikia slaptažodžio“ #slaptažodžio užklausos pranešimas AuthType Basic #autentifikavimo tipas AuthUserFile /passwords/.psd #failo pavadinimas, kuriame yra prisijungimo slaptažodžiai Reikalauti galiojančio naudotojo #prieigą turinčių naudotojų vardas

Prieiga prie failų ir katalogų

Naudodami .htaccess failą galite visiškai arba iš dalies uždrausti prieigą prie tam tikrų failų. Tarkime, kad norite užblokuoti prieigą prie sistemos katalogo. Tada atitinkamame .htaccess laukelyje parašykite:

Neigti nuo visų

Norėdami neleisti peržiūrėti konkretaus failo, pvz., test.php:

neigti nuo visų

Komanda leidžia atidaryti konkretaus IP naršymą, tuo pačiu užkertant kelią kitiems:

Užsakyti Neleisti, Leisti uždrausti iš visų Leisti nuo 12.345.678.90

Išvada

Kaip matote, .htacces paslaugos failas yra vienas iš svarbiausių įrankių, užtikrinančių visą žiniatinklio išteklių funkcionalumą. Ir susipažinę su jo galimybėmis tikriausiai susimąstėte, kodėl anksčiau mažai žinojote apie šį failą. Tai efektyvus įrankis SEO ir programuotojams keisti žiniatinklio serverio konfigūracijas konkrečiose svetainėse, nedarant įtakos pačiam serveriui.

Jos dėka interneto projektų savininkai gali informuoti paieškos sistemas ir lankytojus apie domeno pakeitimą ir perkelti juos į naują, blokuoti prieigą prie visų ar tam tikrų išteklių duomenų, neleisti jų taisyti ir atsisiųsti pašaliniams asmenims, suteikti prieigą prie tam tikrus failus per IP ir slaptažodį.

Kaip pagrindinį žiniatinklio serverį naudojame Apache httpd. „Apache“ naudojama daugeliui pasaulio žiniatinklio serverių organizuoti ir yra populiariausias šios klasės produktas. Šis serveris turi daug konfigūravimo galimybių, yra labai produktyvus ir palaiko visus žinomus žiniatinklio serverių veikimo protokolus. Tokių populiarių programavimo kalbų kaip Perl ir PHP versijos buvo sukurtos specialiai Apache, o šis serveris taip pat lengvai integruojamas su plačiai naudojamomis DBVS (pavyzdžiui, MySQL).

Pagrindinė projekto svetainė yra adresu httpd.apache.org, o pagrindinę 1.3.xx versijos dokumentaciją rasite adresu httpd.apache.org/docs/.

Suteikiame vartotojams galimybę savarankiškai konfigūruoti „Apache“ naudodami atitinkamas direktyvas . Tokiu būdu galite išspręsti daugumą žiniatinklio serverio konfigūracijos problemų masinio prieglobos aplinkoje.

Rodyklės failas

Indekso failas arba indekso failas yra failas, kuris atidaromas pagal numatytuosius nustatymus, kai vartotojas prisijungia prie katalogo per žiniatinklį, o ne konkretų failą. Pavyzdžiui, jūsų lankytojas paprašys adreso http://jūsų_domenas/kaina/, kur kaina yra katalogo pavadinimas. Rodyklės failas yra failas, kuris bus rodomas vartotojui, kai jis pasiekia katalogą, nenurodant konkretaus jame esančio failo pavadinimo.

Numatytieji indekso failai yra: index.html, index.htm, index.php, index.php3, index.phtml, index.shtml, default.htm arba default.html. Jei norite, kad pirmiausia būtų atidarytas kitas failas, turite nepaisyti dabartinių reikšmių. Skaitykite, kaip tai padaryti.

.htaccess failo paskirtis ir naudojimas

Failas .htaccess(atkreipkite dėmesį, kad pirmasis failo pavadinimo simbolis yra taškas) naudojamas „Apache“ žiniatinklio serveriui valdyti iš prieglobos galutinio vartotojo. Šiame faile įdedate nurodymus, kuriuos žiniatinklio serveris priima ir apdoroja, atlikdamas veiksmus pagal vartotojo nustatytus nustatymus.

.htaccess failą galima įdėti į pagrindinį žiniatinklio serverio katalogą (tiesiogiai į katalogą www). Tokiu atveju tokios .htaccess instrukcijos galioja visame žiniatinklio serveryje. Be to, .htaccess gali būti tam tikrame serverio pakatalogyje. Tada šiame faile nurodytos direktyvos „nepaiso“ direktyvų veiksmų iš „pagrindinio“ failo, esančio kataloge. www arba bet kuriame aukštesnio lygio kataloge. Tai yra, direktyvų iš .htaccess poveikis yra paveldimas iš viršaus į apačią, bet ne atvirkščiai. Failo pakeitimai įsigalioja nedelsiant. Taip yra dėl to, kad informacija iš .htaccess perskaitoma kiekvieną kartą, kai pasiekiamas Apache žiniatinklio serveris.

.htaccess gali turėti daugumą galimų žiniatinklio serverio direktyvų. Reikėtų pažymėti, kad direktyvos, kurių konteksto lauke nemini .htaccess, šiame konfigūracijos faile negali būti naudojamos. Naudojant AddType direktyvą kaip pavyzdį, matome, kad konteksto lauke yra nuoroda į .htaccess , todėl galite ją naudoti:

Jei nepasisekė panaudoti reikiamos direktyvos, o pridėjus direktyvą prie .htaccess pamatėte klaidą, greičiausiai komandos naudojimas virtualaus prieglobos sąlygomis yra draudžiamas. Rašykite techninei pagalbai, mes pasistengsime jums padėti. Išsamiai apibūdinkite problemą ir nurodykite tikslus, kuriuos norite pasiekti naudodami šią direktyvą.

Žiniatinklio programų ugniasienė

Žiniatinklio programų ugniasienė („ModSecurity“) yra būtina norint aptikti svetaines ir užkirsti jai kelią. Patikrinimas atliekamas pagal tam tikras taisykles ir, jei nepavyksta, užklausa svetainei atmetama su klaida (403 draudžiama).

Klaidingai teigiamų rezultatų atveju taisykles galima išjungti naudojant .htaccess naudojant toliau pateiktas parinktis:

  • SecRuleRemoveById – pašalinkite taisyklę pagal ID
  • SecRuleRemoveByTag – pašalinkite taisyklę pagal žymą.

Klaidų žurnale error.log galite nustatyti, kurią taisyklę reikia išjungti

Išjungimo pagal ID pavyzdys:

SecRuleRemoveById 933100 933150

Išjungimo pagal žymą pavyzdžiai:

SecRuleRemoveByTag "attack-injection-php" SecRuleRemoveByTag "CWAF"

Kodavimo nepaisymas:

Pagal numatytuosius nustatymus žiniatinklio serveris „siunčia“ visus HTML dokumentus, kurie yra talpinami serveryje, naudojant „Windows-1251“ koduotę. Galite pakeisti kodavimo tipą, kuriuo žiniatinklio serveris „pateiks“ informaciją jūsų asmeninėje paskyroje.

Norėdami tai padaryti, eikite į skyrių „Paslaugų medis“ ir pasirinkite domeną, kurio kodavimo tipą reikia pakeisti. Toliau parametrų sąraše raskite eilutę kodavimas (numatytasis) ir spustelėkite papildyti, kaip parodyta paveikslėlyje žemiau.

Taip pat galite pakeisti kodavimą naudodami .htaccess failą. Norėdami tai padaryti, pridėkite eilutę

AddType "text/html; charset=koi8-r" .html .htm .shtml

Gavęs tokį .htaccess , Apache žiniatinklio serveris išduos antraštę kliento naršyklei, nurodant, kad dokumentas yra užkoduotas koi8-r.

Jei jūsų šaltinyje yra HTML dokumentų skirtingomis koduotėmis (ISO-8859-1, Windows-1250, Windows-1252, UTF-8), gali tekti išjungti priverstinį antraščių su Windows-1251 koduotę išvestį. Norėdami tai padaryti, prie .htaccess pridėkite šią eilutę:

AddDefaultCharset Off

Tokiu atveju atitinkama koduotė turi būti įrašyta kiekviename html puslapyje žymos pavidalu

Pavyzdys: kaip uždaryti katalogą su slaptažodžiu

Viena iš standartinių užduočių, išsprendžiamų naudojant .htaccess, yra prieigos prie konkretaus serverio katalogo ribojimas. Pavyzdžiui, atskiriems lankytojams turite suteikti prieigą prie tam tikro katalogo, suteikdami jiems unikalų prisijungimo vardą ir slaptažodį.

Kataloge, prie kurio norime apriboti prieigą slaptažodžiu, sukuriame .htaccess failą su šiomis direktyvomis:

AuthType Basic AuthName "Kažkas vardas" AuthUserFile /home/ uXXXXXX/.htpasswd reikalauja galiojančio vartotojo

Kelias /home/uXXXXX/.htpasswdžymi visą kelią į slaptažodžio failą mūsų serverio diske. Jei, pavyzdžiui, įdėsite failą .htpasswd (jame bus slaptažodžiai) į pagrindinį katalogą, į kurį patenkate, kai pasiekiate serverį per FTP, kelias į šį failą atrodys taip /home/uXXXXX/.htpasswd, Kur uXXXXXX— jūsų virtualios platformos pavadinimas (pavyzdžiui, u12345).

AuthUserFile direktyvoje nurodome absoliutų kelią į failą su prisijungimais/slaptažodžiais, kurį sukursime kiek vėliau. Jei .htaccess failą kuriate savo kompiuteryje, o ne tiesiogiai serveryje naudodami teksto rengyklę, atkreipkite dėmesį, kad .htaccess failas turi būti perkeltas per FTP griežtai teksto (ASCII) režimu.

Sukurkite slaptažodžio failą. Slaptažodžio faile turi būti tokių eilučių kaip prisijungimo slaptažodis. Slaptažodis turi būti užšifruotas naudojant MD5 algoritmą. Vienas iš būdų sukurti tokį failą yra naudoti su Apache esančią programą - htpasswd (mūsų serveryje ji yra kataloge /usr/local/bin/, visas kelias - /usr/local/bin/htpasswd).

Pažiūrėkime, kaip sukurti slaptažodžio failą unix apvalkale tiesiai serveryje. Eikime į apvalkalą ir vykdykime šias komandas:

  • htpasswd -mbc .htpasswd user1 sNQ7j9oR2w sukurti naują .htpasswd failą, prie kurio pridedame vartotojo user1 įrašą su komandinėje eilutėje nurodytu slaptažodžiu. Prašymas Būtinai pakeiskite sNQ7j9oR2w bet kokiu pasirinktiniu slaptažodžiu – šis slaptažodis čia rodomas tik, pavyzdžiui
  • htpasswd .htpasswd user2 pridedamas prie esamo vartotojo user2 .htpasswd failo, o slaptažodis įvedamas rankiniu būdu atsakant į atitinkamą programos užklausą

Jei naudojate Windows ir nenorite naudoti unix apvalkalo slaptažodžiams generuoti, galite atsisiųsti htpasswd programos Windows versiją ir kompiuteryje sukurti failą su slaptažodžiais, tada įkelti jį į serverį. Jei jau turite įdiegtą „Windows“ versiją „Apache“, failą htpasswd.exe galima rasti kataloge Programos failai\Apache Group\Apache\bin\.

Taigi, gaukite htpasswd.exe ir naudokite jį, kad sukurtumėte tokius slaptažodžius:

  • htpasswd.exe -mc .htpasswd user1 sukurti naują slaptažodžio failą htpasswd.exe, slaptažodžio ir jo patvirtinimo bus paprašyta interaktyviai
  • htpasswd.exe -m .htpasswd user2 pridėkite vartotoją user2 prie esamo slaptažodžio failo htpasswd.exe, interaktyviai ragindami įvesti slaptažodį

Sukūrus visus prisijungimus, failas turi būti įkeltas į serverį.

Pavyzdys: Indekso failo nepaisymas

Situacija: vartotojas pasiekė katalogą http://www.your_domain.ru/price/. Esant tokiai užklausai, bus atidarytas ir parodytas pirmasis. Jei norite nepaisyti indekso failo ir padaryti jį taip, kad pirmiausia būtų atidarytas ne index.htm, o, pavyzdžiui, failas myindex.php, tada tai galima padaryti į .htaccess failą atitinkamame kataloge įdėjus šias instrukcijas:

DirectoryIndex myindex.php

Gavęs .htaccess su tokiu turiniu, „Apache“ žiniatinklio serveris atidarys failą pagal numatytuosius nustatymus myindex.php.

Pavyzdys: draudimas ir leidimas paskelbti sąrašą

Kai kuriais atvejais būtina rodyti failų sąrašą kataloge (katalogų sąrašą), jei kataloge nėra failo, kuris rodomas pagal numatytuosius nustatymus. Norėdami tai padaryti, prie .htaccess turite pridėti šią eilutę:

Parinktys + Indeksai

.htaccess failas turi būti sukurtas tiksliai tame kataloge, kuriame planuojate leisti įtraukti į sąrašą. Ši direktyva taip pat bus taikoma visiems pakatalogiams (tai pasiekiama direktyva įjungta pagal numatytuosius nustatymus virtualaus pagrindinio kompiuterio nustatymuose AllowOverride All).

Direktyva įjungta pagal numatytuosius nustatymus Parinktys - Indeksai, tokiu atveju gausite HTTP klaidą 403.

Jei kodavimas failų pavadinimuose rodomas neteisingai, naudokite ypatybę Charset, kad nurodytumėte norimą kodavimą. Pavyzdžiui, norėdami, kad kirilicos simboliai būtų rodomi UTF-8 koduotėje, prie .htaccess failo pridėkite šią instrukciją:

IndexOptions Charset=UTF-8

Pavyzdys: pasirinktiniai klaidų puslapiai

Pavyzdys: blokuoti prieigą iš kai kurių IP adresų

Kartais prireikia blokuoti prieigą prie svetainės ar jos dalies iš tam tikrų IP adresų.

Tokiu atveju reikia sukurti .htaccess failą su direktyvomis norimame kataloge. Pavyzdžiui, norėdami uždrausti prieigą iš IP adreso 172.16.16.16:

Užsakyti Leisti, Neleisti leisti iš Visų Neleisti nuo 172.16.16.16

Dabar, kai bandote pasiekti svetainę iš IP adreso 172.16.16.16 lankytojas gaus 403 klaidą arba jūsų puslapį dėl šios klaidos.

Dalies adreso nurodymas formoje 172.16.16 apribos prieigą iš potinklio 172.16.16/24.

Kartais reikia elgtis priešingai ir užblokuoti prieigą prie svetainės visiems IP, išskyrus jūsų (). Pavyzdžiui, norėdami leisti prieigą tik prie IP adreso 172.16.16.16, prie .htaccess failo pridėkite šį teiginį:

Užsakyti Leisti, Neleisti leisti nuo 172.16.16.16

Išsamesnę dokumentaciją galite rasti Apache dokumentacijoje.

Pavyzdys: neleidžiama pasiekti kai kurių failų

Kartais tampa būtina uždrausti prieigą prie tam tikrų failų. Pavyzdžiui, į konfigūracijos failus, kuriuose yra prieigos prie duomenų bazių, sąsajų ir kt. Tarkime, faile config.cfg saugote prisijungimo vardą / slaptažodį, kad galėtumėte pasiekti duomenų bazę. Šiame kataloge sukurkite .htaccess failą su direktyvomis:

Įsakymas leisti, atmesti Neleisti iš visų

Dabar, jei lankytojas įveda kažką panašaus į naršyklę http://www.your_domain.ru//config.cfg, gausite 403 klaidą arba jūsų puslapį dėl šios klaidos.

Pavyzdys: paskutinį kartą pakeista antraštė

Kai kuriais atvejais žiniatinklio serveris turi išduoti HTTP antraštę Paskutinį kartą keistas. Pavyzdžiui, registruojant savo išteklius „Yandex“, pasirodo klaida „Neteisingi datos“. Statiniams dokumentams serveris visada grąžins paskutinį kartą pakeistą reikšmę. Tai galioja html failams. SSI atveju serveris išves paskutinį kartą pakeistą reikšmę, jei nurodyta „XBitHack full“ direktyva (tiesiog parašykite šią eilutę .htaccess), o pasiekiamas failas turi grupės rinkinio atributą „vykdomasis“. Scenarijų atveju paskutinis modifikavimas išduodamas kitais būdais. Pavyzdžiui, jei atsižvelgsime į tai, kad PHP scenarijus kodą generuoja dinamiškai, logiškiausia būtų pateikti dabartinę datą ir laiką kaip paskutinį kartą pakeistus./>

Tai įgyvendinama taip:

Dėmesio: komanda antraštę turi būti vykdomas PHP scenarijuje, kol scenarijus pradeda išvesti html tekstą į vartotojo naršyklę.

Failas .htaccess naudojamas „Apache“ serveriui ir keletui kitų serverių konfigūruoti. Nepaisant keisto plėtinio, tai paprastas tekstinis failas, kurį galima modifikuoti bet kuriame redaktoriuje. Šioje pamokoje apžvelgsime, kaip .htaccess gali būti naudojamas jūsų projektuose.

.htaccess failas naudoja tą patį formatą kaip ir pagrindinis Apache konfigūracijos failas: httpd.conf. Daugumą nustatymų galima naudoti abiejuose failuose.

Katalogo .htaccess faile nurodyti parametrai bus svarbesni už nustatymus, nurodytus httpd.conf tam katalogui ir jo pakatalogiams.

Failas .htaccess kartais vadinamas dinaminiu konfigūracijos failu, nes serveris jį nuskaito kiekvieną kartą, kai pateikiama užklausa į katalogą, kuriame jis yra. Šis faktas reiškia, kad .htaccess failo pakeitimai įsigalios iš karto, neperkraunant serverio, skirtingai nei pagrindinio konfigūracijos failo pakeitimai. Tai taip pat reiškia, kad šiek tiek prarandate našumą, kai naudojate .htaccess failą. Bet tai labai patogu tais atvejais, kai nėra prieigos prie pagrindinio serverio konfigūracijos failo.

Peradresavimai ir URL pakeitimai

Populiarus .htaccess failo naudojimas yra peradresavimų arba URL pakeitimų nustatymas. Šis metodas padeda SEO tikslais pakeičiant domeno pavadinimą arba atkuriant projekto failų struktūrą arba paverčiant ilgus, sunkiai įsimenamus URL paprastus ir suprantamus.

Peradresavimai

Peradresavimas gali būti labai paprastas, pavyzdžiui:

Peradresuoti 301 ^old\.html$ http://localhost/new.html

Tokiu atveju HTTP būsenos kodas yra 301 (perkeltas visam laikui), o visos užklausos į old.html nukreipiamos į new.html . Tai naudoja reguliarųjį posakį, kad nustatytų, ar URL atitinka taisyklę, o tai padidina taisyklių kūrimo sudėtingumą, bet suteikia pasitikėjimo, kad URL yra teisingas. Turite nurodyti visą šaltinio, į kurį nukreipiama, URL.

Pakeitimai

Keitimo taisyklė taip pat gali būti labai paprasta:

RewriteEngine pagal RewriteRule ^old\.html$ new.html

Šiame pavyzdyje įvyksta paprastas peradresavimas iš vieno failo į kitą, kuris atliekamas skaidriai, nekeičiant naršyklės adreso juostos turinio. Pirmoji direktyva „RewriteEngine on“ tiesiog užtikrina, kad perrašymo variklis veiktų.

Norėdami atnaujinti lankytojo naršyklės adreso juostos turinį, galime naudoti R vėliavėlę RewriteRule pabaigoje:

Perrašymo taisyklė ^old\.html$ http://hostname/new.html

Žyma r sukelia išorinį peradresavimą, todėl URL atitiks naują puslapį. Taip pat galite naudoti vėliavėlės būsenos kodą, dėl kurio puslapis bus atnaujintas lankytojo naršyklėje.

Vienas iš galimų peradresavimo būdų yra pakeisti URL į paprastesnę formą lankytojams ir tikrintuvams. Pažiūrėkime į pavyzdį:

RewriteRule ^products/([^/]+)/([^/]+)/([^/]+) product.php?cat=$1&brand=$2&prod=$3

Ši taisyklė leidžia lankytojui naudoti tokį URL kaip produktai/patefonai/technika/sl1210, kuris pavirs į product.php?cat=turntables& brand=technics&prod=sl1210. Pavyzdiniame reguliariajame reiškinyje esantys skliaustai tarp pasvirųjų brūkšnių atlieka grupavimą – kiekvieną iš jų galime naudoti atitinkamai kaip $1 , $2 ir $3. Derinys [^/]+ skliausteliuose atitinka bet kokį simbolį, išskyrus pasvirąjį brūkšnį, bet kokiu kiekiu.

Praktiškai keičiant URL taikomos daug sudėtingesnės taisyklės nei aprašytos mūsų pavyzdžiuose, tačiau jos leidžia išspręsti labai sudėtingas problemas.

Pasirinktinis klaidos puslapis

Svetainėje nepraktiška rodyti standartinį 404 puslapį. Daugelis svetainių naudoja šią funkciją, kad pateiktų lankytojui klaidos puslapį, kuris atitinka likusio turinio stilių ir pateikia papildomos informacijos, kuri gali atgrasyti lankytoją.

404 puslapio keitimo taisyklė yra labai panaši į peradresavimo taisyklę:

ErrorDocument 404 "/404.html"

Jei įvyksta 404 klaida, bus rodomas nurodytas puslapis. Taip pat galite sukurti puslapius, kuriuose būtų rodomos kitos serverio klaidos.

Prieigos prie tam tikrų išteklių apribojimai

Naudodami .htaccess failą galime apriboti prieigą prie bet kurio failo ar katalogo. Pavyzdžiui, kodas:

AuthName "Įveskite vartotojo vardą ir slaptažodį" AuthUserFile /path/to/.htpasswd Reikalauti galiojančio vartotojo AuthType Basic

Jis turi būti patalpintas į katalogą, kuris turi būti apsaugotas nuo viešos prieigos. AuthName direktyva nurodo pranešimą, kuris bus rodomas slaptažodžio dialogo lange, o taisyklė AuthUserFile nurodo kelią į .htpasswd failą. Require direktyva nurodo, kad tik registruoti vartotojai gali pasiekti failą.

Norėdami apsaugoti konkretų failą, aukščiau nurodytą kodą turite įtraukti į direktyvą , kuris apibrėžia failo pavadinimą:

AuthName "Įveskite vartotojo vardą ir slaptažodį" AuthUserFile /path/to/.htpasswd Reikalauti galiojančio vartotojo AuthType Basic

Norint naudotis šia funkcija, reikalingas .htpasswd failas, kuriame yra dvitaškiais atskirtas vartotojų vardų sąrašas ir užšifruoti slaptažodžiai, skirti pasiekti privačius išteklius. Šis failas turėtų būti saugomas kataloge, kuris nepasiekiamas iš tinklo. Yra įvairių įrankių, leidžiančių automatiškai sugeneruoti tokį failą, nes slaptažodis turi būti saugomas užšifruota forma.

Blokuojame prieigą tam tikriems lankytojams

Kitas .htaccess failo naudojimo būdas yra greitai ir lengvai blokuoti visas užklausas iš konkretaus IP adreso arba agentų. Jums tereikia pridėti šias taisykles prie .htaccess failo:

Užsakyti leisti, neleisti atmesti nuo 192.168.0.1 leisti iš visų

Užsakymo direktyva nurodo „Apache“ serveriui, kokia tvarka reikia atsižvelgti į leisti/neleisti direktyvas. Pavyzdyje pirmiausia įvertinama leidimo direktyva, po to deny. Pirmiausia atsižvelgiama į leisti iš visų taisyklę (nepaisant to, kad ji apibrėžiama faile po neigimo taisyklės) ir leidžiami visi IP adresai. Tada, jei kliento IP adresas atitinka nurodytą uždraudimo direktyvoje, prieiga blokuojama. Galite blokuoti prieigą prie įvairių IP adresų, nurodydami, pavyzdžiui, 192.168 .

Norėdami užblokuoti prieigą prie tam tikrų agentų, galite naudoti kitas taisykles:

Perrašymo sąlygos %(HTTP_USER_AGENT) ^OrangeSpider Perrašymo taisyklė ^(.*)$ http://%(REMOTE_ADDR)/$

Šiame pavyzdyje bet kuris klientas, kurio HTTP_USER_AGENT eilutė prasideda OrangeSpider (blogas robotas), bus nukreiptas į adresą, iš kurio jis atėjo. Reguliarus posakis atitinka bet kurį vieną simbolį (.) bet kuriame simbolių skaičiuje (*) , o adresui naudojamas kintamasis %(REMOTE_ADDR). l vėliavėlė nurodo Apache serveriui, kad ši taisyklė yra paskutinė klientui ir su ja nereikia atlikti jokių kitų operacijų.

Nurodykite IE išvesties režimą

Be valdymo, kaip serveris reaguoja į tam tikras užklausas, galime daryti įtaką vartotojų naršyklėms, pvz., nurodyti IE konkretų pateikimo mechanizmą. Galite naudoti modulį mod_headers, jei jis yra, norėdami nustatyti antraštę X-UA-Compatible:

Antraštės rinkinys X-UA suderinamas "IE=Edge"

Pridėjus šią eilutę prie .htaccess failo, IE bus nurodyta naudoti geriausią galimą išvesties režimą. Taip pat galime nenaudoti šios antraštės failams, kur tai nebūtina naudojant taisyklę :

Antraštė išjungta X-UA suderinama

Įgalinti talpyklą

Talpyklą labai lengva nustatyti, todėl svetainė įkeliama greičiau. Nustačius retai besikeičiančių išteklių atnaujinimo datą, galime užkirsti kelią pakartotiniam turinio dalių, kurios lieka nepakitusios, atsisiuntimo.

Pavyzdžiui:

ExpiresActive on ExpiresByType vaizdas/gif "prieiga plius 1 mėnuo" ExpiresByType vaizdas/png "prieiga plius 1 mėnuo" ExpiresByType vaizdas/jpg "prieiga plius 1 mėnuo" ExpiresByType vaizdas/jpeg "prieiga plius 1 mėnuo" Galiojimo laikas / oggy" mėnuo" ExpiresByType audio/ogg "prieiga plius 1 mėnuo" ExpiresByType video/mp4 "prieiga plius 1 mėnuo" ExpiresByType video/webm "prieiga plius 1 mėnuo"

Galite pridėti bet kokio tipo turinio ExpiresByType taisykles. „ExpiresActive on“ direktyva tiesiog įgalina generuoti išteklių galiojimo pabaigos antraštę. Ši direktyva priklauso nuo modulio buvimo mod_galioja„Apache“ serveryje.

Leisti suspaudimą

Kitas būdas paveikti išteklių našumą yra naudoti glaudinimą:

FilterDeclare COMPRESS FilterProvider COMPRESS DEFLATE resp=Turinio tipas $text/html FilterProvider COMPRESS DEFLATE resp=Turinio tipas $text/css FilterProvider COMPRESS DEFLATE resp=Content-Type $text/javascript FilterSProvizija COMPRESStecoles=COMPREStecolesy;

Ši glaudinimo schema veikia naujose „Apache“ versijose (2.1+) su įdiegtu moduliu mod_filter. Turiniui suspausti naudojamas DEFLATE algoritmas. Pavyzdyje nurodome text/html , text/css ir text/javascript kaip išteklių tipus, kurie bus suglaudinti.

Filtro apibrėžimas prasideda direktyva FilterDeclare su parinktimi COMPRESS. Tada pateikiamas turinio, kuriam bus taikomas filtras, sąrašas. FilterChain taisyklė nurodo serveriui sukurti grandinę pagal FilterProvider taisyklių sąrašą. FilterProtocol direktyva leidžia nurodyti parinktis, kurias filtras naudoja vykdymo metu. Būtina nurodyti parinktis change=yes (turinys gali būti keičiamas filtru (mūsų pavyzdyje - suspaustas)) ir byteranges=no (filtras gali būti naudojamas tik pilniems failams).

Senesnėse Apache versijose naudojamas modulis mod_deflate norėdami sukonfigūruoti DEFLATE glaudinimą. Yra mažiau filtro valdymo galimybių, tačiau taisyklės paprastesnės:

SetOutputFilter DEFLATE AddOutputFilterByType DEFLATE tekstas/html tekstas/css tekstas/javascript

Pavyzdyje nustatomas glaudinimo algoritmas naudojant SetOutputFilter taisyklę ir nustatomi filtro turinio failų tipai, naudojant taisyklę AddOutputFilterByType.

Paprastai serveris naudoja vieną iš aprašytų modulių, priklausomai nuo Apache serverio versijos. Paprastai žinote, kuris modulis bus naudojamas. Bet jei kuriate bendrą htaccess failą, kuris gali būti naudojamas skirtinguose serveriuose, galite į jį įtraukti abu taisyklių rinkinius naudodami direktyvą . Tokiu būdu bus naudojamos būtinos taisyklės ir bus galima išvengti 500 klaidos generavimo, jei konfigūracijos faile yra pašalintų modulių taisyklės. Taip pat turite atsiminti, kad dedant serverius prie prieglobos, kuri palaiko daug svetainių viename procesoriaus bloke, glaudinimas gali būti išjungtas, kad nebūtų sukurta didelė apkrova.

Išvada

Ši pamoka apima dažniausiai naudojamus htaccess failo naudojimo būdus. Čia pateikta informacija yra įvadas į labai populiarią temą. Yra daug kitų parinkčių ir konfigūracijų, kurias verta ištirti ir pasinaudoti.

.htaccess(su tašku pavadinimo pradžioje) yra „Apache“ serverių konfigūravimo failas, leidžiantis konfigūruoti serverį atskiruose kataloguose (aplanke), nesuteikiant prieigos prie pagrindinio konfigūracijos failo (apache/conf/httpd.conf) . Pavyzdžiui, nustatyti prieigos teises prie failų kataloge, pakeisti indekso failų pavadinimus, savarankiškai tvarkyti Apache klaidas, nukreipti lankytojus į specialius klaidų puslapius. .htaccess yra įprastas tekstinis dokumentas, kurio plėtinys yra htaccess. Šis failas paprastai yra svetainės šaknyje, tačiau galite sukurti papildomų .htaccess failų įvairiems savo svetainės katalogams.

Mod_rewrite- modulis, kurį naudoja žiniatinklio serveriai, norėdami konvertuoti URL.

Jei norite įrašyti visas operacijas, atliktas naudojant mod_rewrite, galite tai įjungti naudodami šį įrašą httpd.conf:

RewriteLog /usr/local/apache/logs/mod_rewrite.log RewriteLogLevel 1

Mod_rewrite modulio direktyvos

Dažniausiai naudojamos parinktys

%(REQUEST_URI) Užklausos eilutė (be domeno pavadinimo ir GET parametrų), pavyzdys "/server/htaccess/"
%(HTTP_HOST) Domeno pavadinimas, pvz., "max22.ru"
%(QUERY_STRING) String GET parametrai

Peradresavimo naudojant .htaccess failą diegimo parinktys

  1. Paprastas peradresavimas:
    Peradresuoti 301 / http://www.domainname.ru/ arba peradresuoti /secret http://www.site.ru/nosecret arba # naudojant reguliariąją išraišką RedirectMatch 301 .* http://www.site.ru/? .htaccess arba httpd.conf už Apache. Pirmasis „/“ reiškia, kad viskas nuo aukščiausio svetainės lygio, įskaitant visus pakatalogius, bus peradresuota (nepamirškite įdėti paskutinio „/“). Jei norite peradresuoti tik puslapį, išlaikydami senojo puslapio PR, galite tai padaryti:

    Peradresuoti 301 /old/old.htm http://www.you.ru/new.htm kur:
    /old/old.htm – senojo puslapio kelias ir pavadinimas
    http://www.you.com/new.htm – naujas kelias ir naujas perkelto puslapio pavadinimas

  2. Peradresuokite į bet kurį puslapį pagal vartotojo IP arba kai prašote konkretaus puslapio (taip pat pagal pavadinimo kaukę).
    Jei vartotojas turi ip 192.152.37.125, tada jis bus nukreiptas į user.php puslapį: SetEnvIf REMOTE_ADDR 192.152.37.125 REDIR="redir" RewriteCond %(REDIR) redir RewriteRule ^/p$ /user.
  3. Peradresuoti, kai prašoma tam tikrų failų. Jei prašoma failų, kurių plėtinys nenurodytas .htaccess faile (gif ir jpg), tada peradresavimas vyksta taip: RewriteEngine On RewriteRule !.(gif|jpg)$ index.php
  4. Naudojant mod_rewrite:
    Parinktys +FollowSymLinks RewriteEngine naudojant RewriteCond %(HTTP_HOST) ^yourdomain\.ru RewriteRule ^(.*)$ http://www.yourdomain.ru/$1
  5. Peradresuoti naudojant reguliarųjį posakį:
    RedirectMatch 301 (.*) http://www.yourdomain.ru$1 Užregistruotas .htaccess faile. (.*) RedirectMatch iš tikrųjų atitinka reguliariosios išraiškos šablonus po domeno pavadinimo. Todėl neįmanoma suderinti šablono ^/yourdomain.ru. Tačiau galite konvertuoti puslapius naudodami plėtinį .html į failus tuo pačiu pavadinimu, bet su plėtiniu .php: RedirectMatch 301 (.*)\.html$ http://www.yourdomain.ru$1.php Jei reikia jei norite atlikti kitokį atskirų puslapių peradresavimą, galite naudoti šiuos veiksmus: RedirectMatch Permanent ^/html/resources.html$ http://www.newdomain.com/resources.php RedirectMatch Nuolatinis ^/html/other_page.html$ http: //www.newdomain.com /other_page.php RedirectMatch Permanent ^/(.*)$ http://www.newdomain.com/ " „RedirectMatch“ nuolatinė“ yra „RedirectMatch 301“ atitikmuo, eilutė su „*(Wildcard)“ turėtų būti paskutinė šiame sąraše.
  6. Lengvai skaitomų URL kūrimas
    Norėdami konvertuoti, pavyzdžiui, www.site.ru/product.php?id=123 į www.site.ru/product/123, taip: RewriteEngine on RewriteRule ^product/([^/\.]+)/?$ produktas .php?id=$1 [L] Šiame pavyzdyje www.site.ru/script.php?product=123 konvertuojame į www.site.ru/cat/product/123/: RewriteRule cat/(.* )/(. *)/$ /script.php?$1=$2
  7. Peradresuoti į PHP:
    header("HTTP/1.1 301 Perkeltas visam laikui"); header ("Vieta: http://www.newdomain.ru/newdir/newpage.htm"); išeiti (); Natūralu, kad turite sukurti puslapį, kai jį pasiekiate, įvyks peradresavimas ir įdėkite jį į serverį. Ir geriau nurodyti HTTP/1.1 (o ne HTTP/1.0 arba HTTP/0.9, kurie nepalaiko bendro prieglobos)
  8. Peradresuokite visus aplanke esančius failus į vieną failą.
    Pavyzdžiui, jums nebereikia svetainės skyrelio „Supernuolaida“ ir norite nukreipti visas užklausas į /superdiscount aplanką į vieną failą /hot-offers.php. Norėdami tai padaryti, pridėkite šį kodą prie .htaccess. Perrašymo taisyklė ^superdiscount(.*)$ /hot-offers.php
  9. Peradresuokite visą aplanką, išskyrus vieną failą
    Šiame pavyzdyje visi failai iš aplanko /superdiscount bus nukreipti į failą /hot-offers.php, IŠSKYRUS failą /superdiscount/my-ebook.html, kuris turėtų būti peradresuotas į /hot-to-make-million.html Perrašymo taisyklė ^superdiscount/my -ebook.html /hot-to-make-million.html RewriteRule ^superdiscount(.*)$ /hot-offers.php
  10. Peradresuokite dinaminį URL į naują failą.
    Ši parinktis naudinga, jei norite peradresuoti dinaminį URL su parametrais į naują statinį failą. RewriteRule ^article.jsp?id=(.*)$ /latestnews.htm Tai dabar yra užklausa į failą, pvz., http://www.kass.ws/article.jsp?id=8632 ir (arba) http: //www .kass.ws/article.jsp?id=1245 bus išsiųstas į failą http://www.kass.ws/latestnews.htm.
  11. Masinis naujų failų peradresavimas.
    Dabar pereikime prie sunkiausio momento, kai reikia peradresuoti daug URL, pavyzdžiui, pakeitus TVS. Čia iš karto iškyla nemažai problemų. Pirma, visų pakeistų adresų įvedimas į .htaccess failą užtruks daug laiko, o pati užduotis nėra maloni. Antra, per daug įrašų .htaccess faile sulėtins Apache serverio darbą. Ir trečia, įvedus tiek informacijos yra didelė tikimybė, kad kur nors suklysi. Todėl geriausia išeitis – samdyti programuotoją, kuris jums parašys dinaminį peradresavimą.
    Žemiau pateiktas pavyzdys parašytas PHP, bet taip pat gali būti vykdomas bet kuria kalba. Tarkime, kad savo svetainėje perėjote į naują susiejimo sistemą ir visi failai, kurie baigiasi senuoju ID, turėtų būti išvardyti. Pirmiausia duomenų bazėje sukuriame lentelę, kurioje yra senasis ID ir naujas peradresavimo URL. old_id INT new_url VARCHAR (255) Tada parašome kodą, kuris sujungs jūsų senus ID su naujais URL
    Po to prie .htaccess pridėkite šią eilutę: RewriteRule ^/product-(.*)_(+).php /redirectold.php?productid=$2, tada sukurkite PHP failą redirectold.php, kuris palaikys 301 peradresavimus:

    Dabar visos užklausos į senus URL bus iškviestos redirectold.php, kuri suras naują URL ir pateiks 301 atsakymą su nauja nuoroda.

    Peradresuoja priklausomai nuo laiko

    Kalbant apie gudrybes, pvz., laiko jautrų turinį, daugelis žiniatinklio valdytojų vis dar naudoja CGI scenarijus, kurie nukreipia į specialius puslapius. Kaip tai galima padaryti naudojant mod_rewrite?

    Peradresavimo sąlygoms yra daug kintamųjų, pavadintų TIME_xxx. Kartu su specialiais leksikografiniais pavyzdžiais palyginimui STRING ir =STRING galime atlikti nuo laiko priklausančius peradresavimus: RewriteEngine per RewriteCond %(TIME_HOUR)%(TIME_MIN) >0700 RewriteCond %(TIME_HOUR)%(TIME_MIN)<1900 RewriteRule ^foo\.html$ foo.day.html RewriteRule ^foo\.html$ foo.night.html

    Tai grąžina foo.day.html turinį, kai prašoma URL foo.html nuo 07:00 iki 19:00, ir foo.night.html turinį likusiu laiku.

  12. Iš pradžių pašaliname visas užklausas „WWW“.
    RewriteEngine # paskelbiame, kad norime naudoti mod_rewrite RewriteCond %(HTTP_HOST) ^www\.(.*) RewriteRule ^/?(.*) http://%1/$1

    Patikriname domeno pavadinimą, jei jis prasideda www, tada veiks taisyklė: „viskas adresu http://%1/$1“. Čia %1 yra mūsų domenas be www (paimtas iš sąlygos), o $1 yra adresas (paimtas iš pačios taisyklės).

  13. Pabaigoje pašaliname index.php iš visų užklausų. Peradresuoti į puslapį be index.php

    Paieškos sistemos nemėgsta pasikartojančių puslapių. Norėdami to išvengti, turite ištrinti (sulipdyti) puslapius, pvz., http://jūsų_domenas/ ir http://jūsų_domenas/index.php

    RewriteCond %(THE_REQUEST) ^.*/index.php Perrašymo taisyklė ^(.*)index.php$ http://%(HTTP_HOST)/$1

  14. Plėtinio keitimas .htmlįjungta .php
    Kartais nutinka taip, kad turite statinę svetainę, tačiau norint su ja dirbti reikia kokio nors PHP scenarijaus. Norėdami tai padaryti, turite nurodyti serveriui, kad šis puslapis būtų traktuojamas kaip php failas. AddHandler application/x-httpd-php .html Ši technika gali būti naudojama kitiems failų plėtiniams: AddHandler application/x-httpd-php .xml AddHandler application/x-httpd-php .asp

Neleidžiama pasiekti konkretaus katalogo

  1. visiems visiems failams kataloge: deny from all
  2. į konkretų failą: neigti nuo visų
  3. pagal vartotojo ip: įsakymas atmesti, leisti neleisti visiems Leisti nuo 192.152.37.125 Prieiga prie šio katalogo bus leidžiama tik vartotojui, kurio IP yra 192.152.37.125.

    Ir jei norite, priešingai, uždrausti atskiriems IP vartotojams pasiekti jūsų svetainę, tada parašysime šias eilutes:

    įsakymas leisti, neleisti leisti iš visų neleisti nuo 192.152.37.125 neleisti nuo 123.456.177

  4. „Options -Indexes“ direktyva draudžia rodyti katalogo turinį, jei nėra indekso failo. Kartais reikia įsitikinti, kad jei kataloge nėra failo, kuris rodomas pagal numatytuosius nustatymus, kataloge esančių failų sąrašas nebus rodomas. . Tada prie .htaccess galite pridėti šią eilutę: Parinktys - Indeksai Šiuo atveju vietoj failų sąrašo kataloge lankytojas gaus HTTP klaidą 403 – prieiga uždrausta.
  5. Uždrausti prieigą prie failų su kelių tipų plėtiniais
  6. neigti nuo visų

    Prieiga prie failų su plėtiniais *.inc, *.conf ir *.cfg draudžiama. Nors pagal numatytuosius nustatymus direktyva neveikia su reguliariosiomis išraiškomis, jas galima įjungti įtraukus tildės simbolį (~) į direktyvos parinktis. Sintaksė yra tokia:

    [tilde] [tarpas] [further_all_without_spaces] Norėdami užblokuoti šią prieigą, parašykite: RewriteRule ^.htaccess$ - [F] Ši taisyklė išversta taip:
    Jei kas nors bando pasiekti .htaccess failą, sistema turėtų pateikti klaidos kodą „HTTP atsakymas 403“ arba „403 Draudžiama – jūs neturite leidimo pasiekti /.htaccess šiame serveryje“.

    Konstrukcija ^.htaccess$ šioje reguliariojoje išraiškoje reiškia:
    ^ - linijos pradžios inkaras
    $ - linijos pabaigos inkaras
    . - įprastose išraiškose taškas "." reiškia meta simbolį ir turi būti paliktas pasviruoju brūkšniu, jei vis tiek norite naudoti tikrąjį tašką.

    Failo pavadinimas turi būti tiksliai tarp pradžios ir pabaigos inkarų. Tai užtikrins, kad tik šis konkretus failo pavadinimas ir joks kitas nesugeneruos klaidos kodo.
    [F]- speciali „uždrausta“ vėliava (uždrausta).
    - neatsižvelgti į raidžių atvejį.
    - reiškia „arba kitą sąlygą“.

Kodavimo apibrėžimas

Kodavimo, kuriuo serveris „siunčia“ failus, nustatymas

AddDefaultCharset windows-1251 parinktys: KOI8-R, UTF-8, Windows-1251

Atsisiųstų failų kodavimo nustatymas

CharsetSourceEnc windows-1251

Katalogo slaptažodžio nustatymas naudojant .htaccess

Norėdami nustatyti katalogo slaptažodį, galite naudoti pagrindinę autorizacijos sistemą, pateiktą Apache žiniatinklio serveryje. Kataloge, prie kurio norime apriboti prieigą slaptažodžiu, sukurkite .htaccess failą su šiomis direktyvomis: AuthType Basic AuthName "Kažkas vardas" AuthUserFile /www/some_login/www/htdocs/some_dir/.htpasswd reikalauja galiojančio vartotojo kelio / www/some_login/ www/htdocs/some_dir/.htpasswd žymi visą kelią į slaptažodžio failą mūsų serverio diske. Jei, pavyzdžiui, įdėsite failą .htpasswd (jame bus slaptažodžiai) į pagrindinį katalogą, į kurį patenkate, kai pasiekiate serverį per FTP, kelias į šį failą atrodys taip /www/some_login/www/htdocs/ some_dir/.htpasswd , kur some_login yra jūsų prisijungimo vardas. AuthUserFile direktyvoje nurodome absoliutų kelią į failą su prisijungimais/slaptažodžiais, kurį sukursime kiek vėliau. Jei .htaccess failą kuriate savo kompiuteryje, o ne tiesiogiai serveryje naudodami teksto rengyklę, atkreipkite ypatingą dėmesį į tai, kad .htaccess turi būti perkeltas per FTP griežtai teksto (ASCII) režimu.

Sukurkite slaptažodžio failą. Slaptažodžio faile turi būti tokios eilutės kaip login:password. Slaptažodis turi būti užšifruotas naudojant MD5 algoritmą. Vienas iš būdų sukurti tokį failą yra naudoti su Apache esančia programa – htpasswd (mūsų serveryje ji yra /usr/local/apache/bin kataloge, visas kelias – /usr/local/apache/bin/htpasswd) .

Pažiūrėkime, kaip sukurti slaptažodžio failą unix apvalkale tiesiai serveryje. Eikime į apvalkalą ir vykdykime šias komandas:

Htpasswd -mbc .htpasswd user1 7B1safkir – sukurkite naują failą .htpasswd, prie kurio pridedame vartotojo user1 įrašą su komandinėje eilutėje nurodytu slaptažodžiu. htpasswd .htpasswd user2 – pridėkite vartotoją2 prie esamo .htpasswd failo ir įveskite slaptažodį rankiniu būdu atsakydami į atitinkamą programos užklausą.

Sukūrus visus prisijungimus, failas turi būti įkeltas į serverį.

Apie kitus slaptažodžių nustatymo puslapyje būdus

Savo klaidų puslapių nustatymas

Savo klaidų puslapį galite nustatyti taip: ErrorDocument 404 http://www.site.ru/404.php IE nepaiso puslapių, mažesnių nei 512 baitų.

Katalogų ir pakatalogių indeksavimas

Kad paieškos sistemos neindeksuotų katalogų ir pakatalogių, turite parašyti tokią eilutę, pvz.: DirectoryIndex index.php Ši direktyva nurodo failą, kuris bus iškviestas einant į katalogą, nenurodant failo pavadinimo.

Galite nurodyti kelis rodyklės puslapius. Kai pateikiama užklausa dėl katalogo, jų bus ieškoma tokia tvarka, kokia yra išvardytos direktyvoje DirectoryIndex. Jei failas index.html nerastas, bus ieškoma failo index.php ir pan.

DirectoryIndex index.html index.php index.shtml

Asmeniškai man labiau patinka nukreipti iš tuščių katalogų į pagrindinį svetainės puslapį arba į kitą tinkamą puslapį. Pavyzdžiui, katalogą www.site.ru/pic/ galima nukreipti į www.site.ru.

Nuotraukų apsauga nuo atsisiuntimo

Dažnai atsitinka taip, kad žiniatinklio valdytojai akivaizdžiai kopijuoja turinį iš jūsų svetainės kartu su nuotraukomis, o nuotraukos įkeliamos iš jūsų serverio. Tai sukuria nereikalingą srautą, dėl kurio dažnai kyla daugybė problemų. Kaip apsisaugoti nuo tokių žiniatinklio valdytojų ir netrukdyti paieškos robotams indeksuoti vaizdų? Tai paprasta: RewriteEngine naudojant RewriteCond %(HTTP_REFERER) . RewriteCond %(HTTP_REFERER) !^http://([^.]+\.)?site\. RewriteCond %(HTTP_REFERER) !google\. RewriteCond %(HTTP_REFERER) !search\?q=cache RewriteCond %(HTTP_REFERER) !msn\. RewriteCond %(HTTP_REFERER) !yahoo\. RewriteCond %(REQUEST_URI) !^/hotlinker\.gif$ RewriteRule \.(gif|jpg|png)$ /hotlinker.gif hotlinker.gif yra vaizdas, kuris bus rodomas vietoj tikrųjų vaizdų. Rekomenduoju šiame paveikslėlyje pateikti savo logotipą ir nuorodą į savo svetainę.

Kita galimybė blokuoti prieigą prie nuotraukų iš neteisėtų svetainių:

SetEnvIfNoCase Referer "^$" local_ref=1 SetEnvIfNoCase Referer "^http://(www\.)?htmlweb\.ru" local_ref=1 SetEnvIfNoCase Referer "^http://(www\.)?images\.yandex\ .ru" local_ref=1 SetEnvIfNoCase Referer "^http://(www\.)?hghltd\.yandex\.com" local_ref=1 Užsakyti Leisti, Neleisti leisti iš env=local_ref

Paieškos sistemos ir įvairių tipų tikrintuvai sukuria milžinišką srautą jūsų svetainėje. Žemiau esantis kodo blokas leis jums uždrausti robotams prieigą prie svetainės.

RewriteCond %(HTTP_USER_AGENT) (Googlebot|Slurp|spider|Twiceler|heritrix| Combine|appie|boitho|e-SocietyRobot|Exabot|Nutch|OmniExplorer| MJ12bot|ZyBorg/1|Ask\ Jeeves|AskJuemavesistBActive|AskJueeThevesist|Active| „BecomeBot“ ot|Vagabondo|fantomBro wser|stealthBrowser |cloakBrowser| fantomCrew \ Naršyklė|Girafabot|Indy\ Library|Intelliseek|Zealbot| Windows\ 95|^Mozilla/4\.05\ \$|^Mozilla/4\.0$) Perrašymo taisyklė ^(.*)$ - [ F] # RewriteCond %(HTTP_USER_AGENT) ^Mozilla.* Perrašymo sąlygos %(HTTP_USER_AGENT) ^Opera.* Perrašymo sąlygos %(HTTP_USER_AGENT) ^Firefox.* RewriteCond %(HTTP_USER_AGENT) ^Netscape.* Perrašymo taisyklė ^(.]*)Perrašyti.$ *)$ – [F]

Stebėti skambučius į failą robots.txt

Norėdami gauti daugiau informacijos apie apsilankymą paieškos sistemose, naudinga turėti išsamios informacijos apie prieigą prie robots.txt failo. Norint tai sutvarkyti, ".htaccess" turi būti šie įrašai: RewriteEngine parinktyse +FollowSymlinks RewriteBase / RewriteRule ^. robots.txt$ / robot.php?%(REQUEST_URI) Dabar, kai prašoma „robots.txt“ failo, mūsų RewriteRule nukreips lankytoją (robotą) į robot.php scenarijų, kuris apdoroja užklausas. Be to, kintamasis perduodamas scenarijui, kuris bus apdorojamas pagal jūsų poreikius. „REQUEST_URI“ nurodo prašomo failo pavadinimą. Šiame pavyzdyje tai yra „robots.txt“. Scenarijus perskaitys „robots.txt“ turinį ir nusiųs jį į interneto naršyklę arba paieškos variklio robotą. Tokiu būdu galime skaičiuoti lankytojų paspaudimus ir saugoti žurnalo failus.

PHPSESSID

Jei norite išjungti PHPSESSID pridėjimą prie URL, indekso.php pradžioje įterpkite:

Ini_set("sesija.naudoti_trans_sid", 0);

Arba įrašykite .htaccess:

Php_flag session.use_trans_sid Off

Jei visa tai jums atrodė sudėtinga, naudokite paruoštą paslaugą dinaminiams URL konvertuoti į statinius naudodami htaccess

Talpyklos direktyvos

Visų tipų failų saugojimas talpykloje pagal prieigos laiką ExpiresAktyvus, kai baigiasiNumatytasis "prieiga plius 600 sekundžių" Visų failų tipų talpyklos saugojimas pagal modifikavimo laiką ExpiresActive on ExpiresNumatytasis "modifikavimas plius 600 sekundžių" Talpykla tam tikrų tipų failams ExpiresByType text/css "modifikacija plius 600 B sekundžių" galiojimo laikas image/jpeg "modifikacija plius 600 sekundžių" ExpiresByType image/gif "modifikacija plius 600 sekundžių" ExpiresByType image/x-ico "modifikacija plius 600 sekundžių" ExpiresByType image/png "modifikacija plius 600 sekundžių"

Išjungti talpyklą naudojant „Apache“ serverį

Atidarykite „Apache“ serverio konfigūracijos failą httpd.conf ir panaikinkite šių eilučių komentarus:

LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so ... AddModule mod_expires.c AddModule mod_headers.c

Įveskite: .htaccess:

# Išjungti talpyklą šiame aplanke # Reikia įjungti modulius # mod_headers.c ir mod_expires.c # # Antraštė Cache-Control Antraštės pridėti „Cache-Control“ „no-store, no-cache, must-revalidate“# Antraštė baigiasi ExpiresActive On ExpiresNumatytasis "dabar"

Reikalingos antraštės bus perduodamos automatiškai, ir nereikia jų rašyti specialiai PHP – talpykla jau išjungta!

Talpyklos valdymo talpyklos http antraštės aprašymas

Talpyklos kaupimas naudojant .htaccess failą

# Leisti talpyklą šiame aplanke # Reikia įjungti modulius # mod_headers.c ir mod_expires.c # ExpiresActive on #ExpiresDefault "prieiga plius 1 valanda" #ExpiresDefault "prieiga plius 10 metų" ExpiresDefault "prieiga plius 1 mėnuo" ExpiresByType text/cache-manifest "prieiga plius 0 sekundžių" ExpiresByType text/html "access" plius 0By seconds xml "prieiga plius 0 sekundžių" ExpiresByType programa/xml "prieiga plius 0 sekundžių" ExpiresByType programa/json "prieiga plius 0 sekundžių" ExpiresByType programa/rss+xml "prieiga plius 1 mėnuo" ExpiresByType vaizdas/x-icon plus 1 weekaccess " ExpiresByType image/gif "prieiga plius 1 metai" ExpiresByType image/png "prieiga plius 1 metai" ExpiresByType image/jpg "prieiga plius 1 metai" ExpiresByType image/jpeg "prieiga plius 1 metai" ExpiresByType access video/ogg1 " ExpiresByType audio/ogg "prieiga plius 1 metai" ExpiresByType audio/mp3 "prieiga plius 1 metai" ExpiresByType video/mp4 "prieiga plius 1 metai" ExpiresByType video/webm "prieiga plius 1 metai" ExpiresByType plus acces-component text 1 mėnuo" ExpiresByType šriftas/truetype "access plus 1 year" ExpiresByType šriftas/opentype "access plus 1 year" ExpiresByType application/x-font-woff "access plus 1 year" ExpiresByType image/svg+xml "access plus 1 month" application/vnd.ms-fontobject "prieiga plius 1 metai" ExpiresByType text/css "prieiga plius 2 mėnesiai" ExpiresByType programa/javascript "prieiga plius 2 mėnesiai" ExpiresByType tekstas/javascript "prieiga plius 2 mėnesiai" Antraštės pridėti talpyklos valdymas „viešas“

„Javascript“ failų kaupimas talpykloje naudojant .htaccess failą

Baigia galiotiNumatytasis „prieiga ir 3 dienos“

Būkite atsargūs kaupdami talpyklą, nes... pakeitus failą, vartotojas gali gauti naują versiją tik po 3 dienų!

Kaip priversti html puslapius apdoroti php kodą?

Į savo .htaccess failą įrašykite šias eilutes: RemoveHandler .php .htm .html AddHandler application/x-httpd-php .php .htm .html

Kaip viename virtualiame priegloboje talpinti kelias svetaines?

Jei norite priglobti dvi ar daugiau svetainių viename bendrame priegloboje, nepaisant to, kiek domenų jums priskirta pagal tarifų planą, „.htaccess“ faile turite įrašyti šias eilutes:

RewriteEngine On RewriteRule ^newdirectory/ - [L] RewriteCond %(HTTP_HOST) (www.)?newdomain.ru RewriteRule (.*) newdirectory/$1 [L]

Kur:
newdirectory/ – aplankas, kuriame bus antroji svetainė
newdomain.ru – domenas, į kurį nukreipiame

Atminkite, kad tokiu atveju turėsite vieną el. pašto paskyrą. Tie. jei turite dėžutę [apsaugotas el. paštas], tada prie dėžutės prijungus domeną newdomain.ru [apsaugotas el. paštas] pasirodo antras vardas - [apsaugotas el. paštas]. O kuriant bet kokią naują pašto dėžutę (pavyzdžiui, info), jai automatiškai priskiriami du pavadinimai - [apsaugotas el. paštas] Ir [apsaugotas el. paštas].

Puslapių paieška daugiau nei viename kataloge

Kartais reikia leisti žiniatinklio serveriui ieškoti puslapių daugiau nei viename kataloge.

Pirmiausia RewriteEngine #, pabandykime jį rasti nurodytoje vietoje/... # ...ir jei radote, pabaikite paiešką: RewriteCond /your/docroot/dir1/%(REQUEST_FILENAME) -f RewriteRule ^(.+) /your/ docroot/dir1/$1 [L] # antra, pabandykime jį rasti pub/... # ...ir jei radote, užbaikite paiešką: RewriteCond /your/docroot/dir2/%(REQUEST_FILENAME) - f RewriteRule ^( .+) /your/docroot/dir2/$1 [L] # kitu atveju tęskite kitoms direktyvoms RewriteRule ^(.+) -

Naudotojo virtualūs kompiuteriai

Jei norite pateikti www.subdomain.domain.ru adresus naudotojų puslapiams, galite naudoti toliau pateiktą taisyklių rinkinį, norėdami konvertuoti http://www.subdomain.domain.ru/path į vidinį kelią /home/subdomain/path :

RewriteEngine naudojant RewriteCond %(HTTP_HOST) ^www\.[^.]+\.ru$ RewriteRule ^(.+) %(HTTP_HOST)$1 [C] RewriteRule ^www\.([^.]+)\.ru( .*) /namai/$1$2

Failai sugadinami, kai įkeliami į serverį

Jei perkeliant failus per formas (nurodant enctype="multipart/form-data") dvejetainiai duomenys yra pažeisti, į /cgi-bin/.htaccess pridėkite šią direktyvą: CharsetRecodeMultipartForms Off.

Įkeliant SWF failus įvyko klaida.
Klaidos pasiekiant puslapius, kuriuose yra raktinių žodžių
įveskite $_REQUEST

Taip gali nutikti dėl įdiegto modulio Apache. Pagal numatytuosius nustatymus jis užklausose blokuoja eilutes su SQL argumentais ir kitomis potencialiai pavojingomis komandomis.

Galimi klaidų pranešimai:

Draudžiama

Neturite leidimo pasiekti /adm/index.php šiame serveryje. Be to, bandant apdoroti užklausą naudojant ErrorDocument, įvyko klaida 404 nerasta.

Užklausa nėra saugi ir buvo atmesta.

Pridėti prie .htaccess SecFilterEngine Off SecFilterScanPOST Off Dėl pranešimo:

"POST /wp-admin/async-upload.php HTTP/1.1" 406 354 "-" "Shockwave Flash"

Galite pašalinti apsaugą tik įkeliant failus į serverį: „SecFilterEngine“ išjungta „SecFilterScanPOST“ išjungta

Apsaugą geriausia pašalinti tik iš aplanko, kuriame ji yra būtina, nepašalinant apsaugos nuo visos svetainės.

Serverio kintamieji

Tai yra formos kintamieji %(NAME_OF_VARIABLE)

Kur NAME_OF_VARIABLE gali būti eilutė, paimta iš šio sąrašo:

Šie kintamieji tiksliai atitinka panašiai pavadintas HTTP MIME antraštes ir Apache serverio kintamuosius arba Unix sistemos struktūros tm laukus. Tie, kurie yra specialūs mod_rewrite, yra šie:

IS_SUBREQ– Bus tekstas „true“, jei užklausa šiuo metu vykdoma kaip antrinė užklausa, kitu atveju „false“. Papildomas užklausas gali generuoti moduliai, kuriems reikia susidoroti su papildomais failais arba URI, kad galėtų atlikti savo užduotis.

API_VERSION– Tai yra Apache modulio API (vidinės sąsajos tarp serverio ir modulio) versija dabartinėje serverio versijoje, kaip apibrėžta include/ap_mmn.h. Modulio API versija atitinka naudojamą Apache versiją (pavyzdžiui, Apache 1.3.14 versijai tai yra 19990320:10), tačiau tai daugiausia domina modulio autorius.

THE_REQUEST– Visa HTTP užklausos eilutė, kurią naršyklė siunčia serveriui (ty „GET /index.html HTTP/1.1“). Jame nėra jokių papildomų naršyklės siunčiamų antraščių.

REQUEST_URI– Išteklius, kurio prašoma HTTP užklausos eilutėje.

REQUEST_FILENAME- Visas kelias serverio failų sistemoje iki failo arba scenarijaus, atitinkančio šią užklausą.

Pastabos:

  1. Kintamuosiuose SCRIPT_FILENAME ir REQUEST_FILENAME yra tos pačios reikšmės, t. y. Apache serverio vidinės užklausos_rec struktūros failo pavadinimo lauko reikšmė. Pirmasis pavadinimas yra tiesiog gerai žinomas CGI kintamojo pavadinimas, o antrasis yra nuolatinė REQUEST_URI kopija (kurioje yra užklausos_rec struktūros uri lauko reikšmė).
  2. Yra specialus formatas: %(ENV:kintamasis) kur kintamasis gali būti bet koks aplinkos kintamasis. To ieškoma Apache vidinėse struktūrose ir (jei ten nėra) iš Apache serverio proceso iškviečiant getenv().
  3. Yra specialus formatas: %(HTTP:header) kur titulą gali būti bet koks HTTP MIME antraštės pavadinimas. Tai ieškoma HTTP užklausoje. Pavyzdys: %(HTTP:Proxy-Connection) HTTP antraštės reikšmė " Proxy-Connection: ".
  4. Yra specialus %(LA-U:kintamasis) išankstinių užklausų, kurias atlieka vidinė (URL pagrindu) antrinė užklausa, formatas galutinei vertei nustatyti. kintamasis. Naudokite tai, kai norite naudoti konversijoms skirtą kintamąjį, kuris iš tikrųjų yra apibrėžtas vėliau tam tikrame API etape, todėl tame etape nepasiekiamas. Pavyzdžiui, kai norite konvertuoti pagal REMOTE_USER kintamąjį iš serverio konteksto (failo httpd.conf), turėtumėte naudoti %(LA-U:REMOTE_USER), nes šis kintamasis nustatomas autorizacijos fazėse po to URL vertimo fazė, kurioje veikia mod_rewrite. Kita vertus, kadangi mod_rewrite veikia katalogo kontekste (.htaccess failas) per API pataisymo etapą ir kadangi autorizacijos etapai ateina prieš šį etapą, ten galite tiesiog naudoti %(REMOTE_USER).
  5. Yra specialus formatas: %(LA-F:kintamasis), kuris sukuria vidinę (pagal failo pavadinimą) antrinę užklausą galutinei vertei nustatyti kintamasis. Tai iš esmės tas pats, kas aukščiau pateiktas LA-U formatas.

Pagrindinis puslapis be pasikartojimo

Paprastai pagrindinio puslapio kodas fiziškai yra faile index.html arba index.php, tačiau svetainė turėtų būti atidaryta pagal bet kurią iš užklausų: yoursite.ru, yoursite.ru/index.html, www.yoursite.ru ir www. .yoursite.ru/index .html. Tačiau paieškos varikliams tai yra keturi skirtingi URL adresai! Jei netinkamai sukonfigūravote .htaccess, paieškos variklis į savo indeksą įtrauks keturis identiškus puslapius. Tai žemos kokybės svetainės požymis. Šios problemos galite išvengti naudodami šį kodą .htaccess:

Parinktys +FollowSymLinks RewriteEngine naudojant RewriteCond %(HTTP_HOST) ^yoursite.ru RewriteRule (.*) http://www.yoursite.ru/$1 RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.html\ HTTP/ Perrašymo taisyklė ^index\.html$ http://www.yoursite.ru/

Visi pasikartojantys puslapiai bus sujungti su peradresavimo kodu į pagrindinį puslapį - http://www.yoursite.ru/.

Pasikartojantys puslapiai be pasvirojo brūkšnio URL pabaigoje

Norėdami išvengti situacijos, kai puslapiai www.yoursite.ru/about ir www.yoursite.ru/about/ indeksuojami kaip skirtingi, įdėjome šį kodą:

Puslapiai be pasvirojo brūkšnio bus nukreipti į „pasvirojo brūkšnio“ puslapius.

RewriteCond %(REQUEST_FILENAME) !-f RewriteCond %(REQUEST_URI) !(.*)/$ Perrašymo taisyklė ^(.*)$ /$1/

Failų išsaugojimas (atsiuntimas), o ne atidarymas

Daugelis matė, kaip bandant atsisiųsti archyvą su plėtiniu .rar, naršyklė jį atidaro kaip paprastą tekstą, sudarytą iš daugybės simbolių. Tai reiškia, kad svetainės serveris nėra sukonfigūruotas priverstinai išsaugoti failų tipus, kurių negalima atidaryti naršyklėje.

AddType application/octet-stream .rar .doc .mov .avi .pdf .xls .mp4

Išsiųstų puslapių glaudinimas

SetOutputFilter DEFLATE Antraštė panaikinta ETag FileETag Nėra

Priverstinis pasvirojo brūkšnio nustatymas

Šis kodas visada pridės pasvirąjį brūkšnį prie jūsų svetainės URL, o tai puikiai tinka svetainės SEO.

RewriteCond %(REQUEST_URI) /+[^\.]+$ Perrašymo taisyklė ^(.+[^/])$ %(REQUEST_URI)/

Kryžminio domenų šrifto naudojimas „FireFox“.

Naudojant įmontuotus šriftus, „Firefox“ neleidžia jų paimti iš išorinių svetainių. Šis .htaccess failo kodas leis jums apeiti šį apribojimą.

#Pakeiskite yourdomain.com savo tinklaraščio adresu Antraštės rinkinys Access-Control-Allow-Origin "http://yourdomain.com"

Vykdykite PHP „JavaScript“ failuose

Kuriant JavaScript kodą kartais reikia naudoti PHP .js failuose, pavyzdžiui, norint gauti duomenis iš duomenų bazės.

AddType application/x-httpd-php .js AddHandler x-httpd-php5 .js SetHandler programa/x-httpd-php

Išskleiskite failus robots.txt, sitemap.xml ir kt. į domeno aplankus

# Jei domeno aplanke yra prašomas failas iš svetainės šaknies, peradresuokite jį ten RewriteCond %(DOCUMENT_ROOT)/domain/%(HTTP_HOST)/root%(REQUEST_URI) -f RewriteRule ^(.*)$ /domenas/%(HTTP_HOST )/root/$1 [L]

Vartotojų agentų blokavimas naudojant .htaccess

Jei susiduriate su problema, kad kai kurių tipų naudotojų agentai į jūsų serverį įkelia nereikalingų užklausų, galite jų atsikratyti prie .htaccess pridėję šias eilutes:

SetEnvIfNoCase User-Agent "^Black Hole" bad_bot SetEnvIfNoCase User-Agent "^Titan" bad_bot SetEnvIfNoCase User-Agent "^WebStripper" bad_bot SetEnvIfNoCase User-Agent "^NetMechanic" bad_bot User-Agent "^NetMechanic" bad_bot User-Agent "Cherv IfNoCase vartotojo agentas "^EmailCollector" bad_bot SetEnvIfNoCase User-Agent "^EmailSiphon" bad_bot SetEnvIfNoCase User-Agent "^WebBandit" bad_bot SetEnvIfNoCase User-Agent "^EmailWolf" bad_bot "SetEnvIfNoCase User-Agent"-^Extract User-Agent RightCheck“ bad_bot SetEnvIfNoCase vartotojo agentas „^Crescent“ bad_bot SetEnvIfNoCase vartotojo agentas „^Wget“ bad_bot SetEnvIfNoCase vartotojo agentas „^SiteSnagger“ bad_bot SetEnvIfNoCase vartotojo agentas „^ProWebWalker“ bad_BotNo SetCrescent NoCase vartotojo agentas ^Teleport" bad_bot SetEnvIfNoCase User-Agent "^TeleportPro" bad_bot SetEnvIfNoCase vartotojo agentas "^MIIxpc" bad_bot SetEnvIfNoCase vartotojo agentas "^Telesoft" bad_bot SetEnvIfNoCase vartotojo agentas "IpNoCase" botas SetEnvIfNoCase vartotojo agentas "^moget/2.1" bad_bot SetEnvIfNoCase vartotojo agentas "^WebZip/4.0" bad_bot SetEnvIfNoCase vartotojo agentas "^WebSauger" bad_bot SetEnvIfNoCase User-Agent "^Ant_User-Agent"-I bad_Copier"- bot SetEnvIfNoCase Vartotojo agentas „^Mister PiX“ bad_bot SetEnvIfNoCase User-Agent „^WebAuto“ bad_bot SetEnvIfNoCase vartotojo agentas „^TheNomad“ bad_bot SetEnvIfNoCase vartotojo agentas „^WWW-Collector-E“ bad_bot SetEnvIfNoCase ^ User-Agent User-Agent "^libWeb/clsHTTP" bad_bot SetEnvIfNoCase User-Agent "^asterias" bad_bot SetEnvIfNoCase User-Agent "^httplib" bad_bot SetEnvIfNoCase User-Agent "^turingos" bad_bot SetEnvIfNoCase User-Agent"If^Case User-Agent"If^Case User-Agent "^InfoNaviRobot" bad_bot SetEnvIfNoCase User-Agent "^Harvest/1.5" bad_bot SetEnvIfNoCase User-Agent "^Bullseye/1.0" bad_bot SetEnvIfNoCase User-Agent "^Mozilla/4.0 (suderinamas; Bulio akis; Windows 95)" bad_bot SetEnvIfNoCase User-Agent "^Crescent Internet ToolPak HTTP OLE Control v.1.0" bad_bot SetEnvIfNoCase User-Agent "^CherryPickerSE/1.0" bad_bot SetEnvIfNoCase User-Agent "^CherryPicker"-_NoCase User-Agent "^CherryPicker"-_No. WebBandit/3.50" bad_bot SetEnvIfNoCase User-Agent "^NICErsPRO" bad_bot SetEnvIfNoCase User-Agent "^Microsoft URL Control - 5.01.4511" bad_bot SetEnvIfNoCase User-Agent "^DittoSpyder" bad_bot "SetEnv^CFen" NoCase vartotojas- Agentas "^WebmasterWorldForumBot" bad_bot SetEnvIfNoCase vartotojo agentas "^SpankBot" bad_bot SetEnvIfNoCase vartotojo agentas "^BotALot" bad_bot SetEnvIfNoCase vartotojo agentas "^lwp-trivial/1. 34" bad_bot SetEnvIfNoCase User-Agent "^lwp-trivial" bad_bot SetEnvIfNoCase User-Agent "^Wget/1.6" bad_bot SetEnvIfNoCase User-Agent "^BunnySlippers" bad_bot SetEnvIfNoCase SetEnvIfNoCase User-A.6 NoCase Vartotojo agentas "^URLy Warning" bad_bot SetEnvIfNoCase Vartotojo agentas "^Wget/1.5.3" bad_bot SetEnvIfNoCase vartotojo agentas "^LinkWalker" bad_bot SetEnvIfNoCase vartotojo agentas "^cosmos" bad_bot "SetEnvIfbotNoCaseCase" User-Agent "^hloader" bad_bot SetEnvIfNoCase User-Agent "^humanlinks" bad_bot SetEnvIfNoCase User-Agent "^LinkextractorPro" bad_bot SetEnvIfNoCase vartotojo agentas "^Offline Explorer" bad_bot SetEnvIfNoCase User-NoCase User-Agent "IfNoCase User-Agent" "^LexiBot" bad_bot SetEnvIfNoCase vartotojo agentas "^Web Image Collector" bad_bot SetEnvIfNoCase User-Agent "^The Intraformant" bad_bot SetEnvIfNoCase User-Agent "^True_Robot/1.0" bad_bot SetEnvIfNoCase User-Agent "^True" -Agentas „^BlowFish/1.0“ bad_bot SetEnvIfNoCase User-Agent „^JennyBot“ bad_bot SetEnvIfNoCase vartotojo agentas „^MIIxpc/4.2“ bad_bot SetEnvIfNoCase vartotojo agentas „^BuiltBotTough“ bad_bot „SetEnvIfNoCase User-Bot vIfNoCase naudotojas- Agentas "^BackDoorBot/1.0" bad_bot SetEnvIfNoCase User-Agent "^toCrawl/UrlDispatcher" bad_bot SetEnvIfNoCase vartotojo agentas "^WebEnhancer" bad_bot SetEnvIfNoCase User-Agent "^TightNoCase" bot SetEnvIfNoCase vartotojo agentas "^VCI WebViewer VCI WebViewer Win32" bad_bot SetEnvIfNoCase vartotojo agentas "^VCI" bad_bot SetEnvIfNoCase vartotojo agentas "^Szukacz/1.4" bad_bot SetEnvIfNoCase vartotojo agentas "^QueryN metasearch" bad_bot "nonre_boot" ^Open-Afgent_no CaseEnv" SetEnvIfNoCase vartotojo agentas "^Openfind" bad_bot SetEnvIfNoCase vartotojo agentas "^Xenu"s Link Sleuth 1.1c" bad_bot SetEnvIfNoCase vartotojo agentas "^Xenu"s" bad_bot SetEnvIfNoCase User-Agent" User-Agent "Agent" RepoMonkey Bait & Tackle/v1.01" bad_bot SetEnvIfNoCase User-Agent "^RepoMonkey" bad_bot SetEnvIfNoCase User-Agent "^Zeus 32297 Webster Pro V2.9 Win32" bad_bot SetEnvIfNoCase User-Agent "IfNoCase User-Agent" ^EroCrawler" bad_bot SetEnvIfNoCase User-Agent "^LinkScan/8.1a Unix" bad_bot SetEnvIfNoCase User-Agent "^Keyword Density/0.9" bad_bot SetEnvIfNoCase User-Agent "^Kenjin SeCtasebot" BadIbbi^ Užsakykite Allow, Deny Allow iš visų Neleisti iš env=bad_bot

Persiuntimas pagal kalbą

RewriteEngine naudojant RewriteCond %(HTTP:Accept-Language) (ru) RewriteRule .* WHERE [L]

Vaizdų apsauga nuo atsisiuntimo naudojant nuorodas kitose svetainėse

Įskaitant perėjimus be REFERER, t.y. kai naršyklės eilutėje nurodomas adresas.

RewriteEngine naudojant RewriteCond %(HTTP_REFERER) !^$ RewriteCond %(HTTP_REFERER) !^http(s)?://(www\.)?yourdomain.com RewriteRule \.(jpg|jpeg|png|gif)$ WHERE_SEND

RewriteEngine naudojant RewriteCond %(HTTP_REFERER) !^http(s)?://(www\.)?yourdomain.com RewriteRule \.(jpg|jpeg|png|gif)$ WHERE_TO_SEND

Blokuoti vartotojus naudodami konkretų persiuntimo adresą

Jei nenorite, kad vartotojai iš tam tikrų svetainių eitų į jūsų svetainę, galite tai užblokuoti.

RewriteEngine ant RewriteCond %(HTTP_REFERER) bannedurl1.com RewriteCond %(HTTP_REFERER) bannedurl2.com RewriteRule .* - [F]

bannedurl1.com ir bannedurl2.com yra uždraustų svetainių pavyzdžiai.

Apribojamas PHP įkeliamo failo dydis, maksimalus užklausos dydis ir maksimalus scenarijaus vykdymo laikas

Atsisiuntimo failo dydis:

Php_value upload_max_filesize 15M

Maksimalus įkėlimo užklausos dydis PHP:

Php_value post_max_size 10M

Scenarijaus vykdymo laikas:

Php_value maksimalus_vykdymo laikas 240

Laikas, per kurį scenarijus turi išanalizuoti įvestus duomenis:

Php_value max_input_time 180

Nurodykite IE išvesties režimą

X-UA suderinamos antraštės nustatymas:

Antraštės rinkinys X-UA suderinamas "IE=Edge"

Nustatymas skiriasi: Priimti-Kodavimas

Siekiant optimizuoti paieškos variklį ir sumažinti puslapio įkėlimo laiką, „Google“ rekomenduoja nustatyti antraštę Vary: Accept-Encoding

HTTP/1.1 Vary atsakymo antraštė leidžia serveriui nurodyti, kad talpykloje esantis išteklius gali būti naudojamas netikrinant tik tuo atveju, jei Vary nurodytos antraštės atitinka užklausų antraštes. Reikšmės: Accept-Encoding, Host, User-Agent, Accept-Language.

Antraštės pridėjimas Vary: Accept-Encoding

Bendras vaizdo failas visiems domenams (pasauliniai slapyvardžiai)

Pseudonimas /javascripts /usr/share/javascript/ Parinktys FollowSymLinks MultiViewsĮdėkite bendrą failą, pvz., icon.png, į katalogą /usr/share/javascript/ Į failą /etc/javascript-common/javascript-common.conf ir pridėkite eilutę: Alias ​​​​/apple-touch-icon -precomposed.png /usr/ share/javascript/icon.png

Atsisiunčiant .doc, .docx failai atidaromi naršyklėje su nesuprantama koduote

Jei atidarote .doc, .docx failus naršyklėje su nesuprantama koduote ir norite, kad failas būtų išsaugotas, o ne atidarytas spustelėjus kairiuoju pelės mygtuku, tuomet turite įrašyti .htaccess:

AddType programa / priverstinis atsisiuntimo dokumentas AddType programa / priverstinis atsisiuntimas docx AddType programa / priverstinis atsisiuntimas xls AddType programa / priverstinis atsisiuntimas xlsx

Peradresuoti į saugų https ryšį

Jei naudojate https ir norite, kad visi vartotojai būtų nukreipti į jį, šis kodas jums padės:

„RewriteEngine“ įjungta „RewriteCond“ %(HTTPS) !on perrašymo taisyklė (.*) https://%(HTTP_HOST)%(REQUEST_URI)

Prieiga, jei slapukas nustatytas naudojant htaccess

Jei jūsų prisijungimas svetainėje yra admin ir jis nustatytas slapuke su prisijungimo vardu, galite lengvai užblokuoti prieigą prie bet kurio katalogo nepažįstamiems žmonėms. Norėdami tai padaryti, šiame kataloge (aplanke) sukurkite .htaccess failą su tokiu turiniu:

RewriteEngine On RewriteCond %(HTTP_COOKIE) !login=admin RewriteRule .* http://%(HTTP_HOST)/

Naudodami tą patį principą, galite uždaryti svetainę profilaktinei priežiūrai visiems, išskyrus administratorių.

Pasiekite antraštes „If-Modified-Since“ ir „If-None-Match“, kad įgyvendintumėte http 304 atsakymą

Jei PHP neįdiegtas kaip Apache modulis, norėdami pasiekti antraštes „If-Modified-Since“ ir „If-None-Match“, turite įdėti šį .htaccess failą į pagrindinį svetainės katalogą:

RewriteEngine On RewriteRule .* – RewriteRule .* –

Po to reikiamos antraštės bus pasiekiamos kaip $_SERVER["HTTP_IF_MODIFIED_SINCE"] ir $_SERVER["HTTP_IF_NONE_MATCH"].

Pažymėtina, kad antraštės „If-Modified-Since“ ir „If-None-Match“ naršyklė nesiunčia, jei žiniatinklio serverio atsakyme į ankstesnes užklausas negavo antraštės „Last-Modified“ puslapį. Be to, naudojant seansus su numatytaisiais nustatymais žiniatinklio programoje, naršyklė taip pat nesiųs nurodytų antraščių. Kad išvengtumėte šios naršyklės elgsenos, prieš pradėdami seansą turite vykdyti funkciją session_cache_limiter, kaip argumentą perduodant parametrą "private_no_expire":

Session_cache_limiter("privatus_negaliojimo laikas"); session_start();

Be to, papildomos informacijos šia tema galima rasti:

www.egoroff.spb.ru – peradresavimų pavyzdžiai
htaccess.net.ru – papildoma informacija apie htaccess.

.htaccess failas leidžia nustatyti svetainės konfigūracijas nekeičiant serverio konfigūracijos failų. Taškas failo pavadinimo pradžioje reiškia, kad failas yra paslėptas.

.htaccess failą galima sukurti teksto rengyklėje, o tada įkelti į svetainę naudojant ftp klientą

Pastaba: .htaccess failo pavadinime nėra jokių papildomų žodžių ar plėtinių.

Be to, didelę reikšmę turi ir tokio failo vieta. Šiame faile esančios konfigūracijos turės įtakos visam katalogo, kuriame yra pats failas, turiniui, taip pat visiems jo pakatalogiams.

Failų ypatybės.htaccess

Nors .htaccess puslapis yra nepaprastai naudingas ir gali labai pagerinti jūsų svetainę, naudojant jį reikia atsiminti du dalykus.

Pirma, tai greitis. .htaccess puslapis gali šiek tiek sulėtinti serverio greitį; daugeliu atvejų tai beveik nepastebima. Taip yra dėl puslapio išdėstymo: kaip minėta, .htaccess failas turi įtakos puslapiams ir pakatalogiams jo kataloge. Kiekvieną kartą, kai įkeliamas puslapis, serveris tikrina jo katalogą, taip pat kiekvieną virš jo esantį katalogą, kol pasiekia aukščiausią katalogą arba .htaccess failą. Šis procesas tęsis tol, kol nustatymas AllowOverride leis naudoti .htaccess failus, neatsižvelgiant į tai, ar tokie failai iš viso egzistuoja sistemoje.

Antra, tai saugumas. .htaccess failą pasiekti daug lengviau nei įprastą Apache konfigūracijos failą, o atlikti jo pakeitimai bus suaktyvinti iš karto, nereikės perkrauti serverio. Todėl vartotojai, turintys teisę keisti .htaccess failą, gali rimtai paveikti patį serverį. Bet kuri direktyva, pridėta prie .htaccess, turi tokį patį poveikį kaip ir direktyva, tiesiogiai įtraukta į Apache konfigūraciją.

Kaip įtraukti failą.htaccess?

Turėdami prieigą prie serverio nustatymų, galite redaguoti „Apache“ konfigūracijas, kad .htaccess failai nepaisytų standartinių svetainės konfigūracijų. Atidarykite numatytąjį apache2 pagrindinio kompiuterio konfigūracijos failą.

Pastaba: Šiame etape jums reikės sudo privilegijų.

sudo nano /etc/apache2/sites-available/default

Atidarę failą raskite kitą skyrių ir pakeiskite AllowOverride direktyvos reikšmę iš None į All. Skyrius turėtų atrodyti taip:


Parinktys Rodyklės FollowSymLinks MultiViews
AllowOverride All
Užsakyti leisti, atmesti
leisti iš visų

Išsaugokite ir uždarykite failą, tada iš naujo paleiskite apache.

sudo paslauga apache2 paleiskite iš naujo

Kūrimasfailą.htaccess

Kaip jau minėta, .htaccess failą galima sukurti naudojant teksto rengyklę, o tada įkelti į svetainę per ftp klientą (.htaccess failo pavadinime neturi būti papildomų žodžių ar plėtinių).

Arba galite sukurti tokį failą naudodami terminalą; Norėdami tai padaryti, naudokite šią komandą, pakeisdami example.com svetainės pavadinimu.

sudo nano /var/www/example.com/.htaccess

Įprasti .htaccess naudojimo būdai

1. Mod_Perrašyti

Vienas iš naudingiausių failo aspektų. .htaccess failo vieta gali būti naudojama norint apibrėžti / pakeisti būdą, kaip URL ir tinklalapiai būtų rodomi svetainėje. Išsamią informaciją apie tai, kaip tai padaryti, rasite šioje nuorodoje.

2. Autentifikavimas

Nors .htaccess failui nereikia tiek teisių, kiek standartiniam apache2.conf konfigūracijos failui, jį vis tiek galima naudoti norint veiksmingai pakeisti svetainės saugumą. Faktas yra tas, kad .htaccess leidžia paprašyti slaptažodžio, kad galėtumėte pasiekti tam tikras tinklalapio dalis. .htaccess slaptažodžiai saugomi faile, pavadintame .htpasswd.

Pastaba: Saugumo sumetimais tokio failo saugoti svetainės kataloge griežtai nerekomenduojama.

.htpasswd faile turite nurodyti visų vartotojų, kuriems leidžiama prieiti prie saugios svetainės dalies, vardus ir slaptažodžius.

Vartotojų vardai ir slaptažodžiai įvedami į failą kaip pora vartotojo_vardas:šifruotas_slaptažodis. Pavyzdžiui, jei vartotojas, pavadintas best_user, turi nuostabų slaptažodį, tokia pora gali atrodyti taip: „best_user:VtweQU73iyETM“.

Pastaba: kiekviena pora įrašoma į atskirą eilutę. .htpasswd faile gali būti tiek eilučių, kiek reikia.

Sukūrę .htpasswd, prie .htaccess pridėkite šį kodą, kad įjungtumėte autentifikavimo funkciją:

AuthUserFile /usr/local/username/safedirectory/.htpasswd
AuthGroupFile /dev/null
AuthName Įveskite slaptažodį
„AuthType Basic“.
Reikalauti galiojančio vartotojo

Linija AuthUserFile apibrėžia kelią į .htpasswd failą.

Linija AuthGroupFile nurodo vietą.htgroup. Kadangi tokio failo šiuo metu nėra, palikite jį /dev/null.

Linija AuthName yra tekstas, kuris bus rodomas slaptažodžio užklausoje (galite įvesti bet kokį tekstą).

AuthType nurodo autentifikavimo tipą, kuris bus naudojamas slaptažodžiams patikrinti. Slaptažodžiai tikrinami per HTTP ir pagrindinio raktinio žodžio pakeisti negalima.

Linija Reikalautigaliojantis -Vartotojas nurodo .htaccess failą, kad keli žmonės turėtų turėti prieigą prie slaptažodžiu apsaugotų svetainės sričių. Jei reikia nurodyti konkretų asmenį, turintį prieigą prie apribotų svetainės dalių, vietoj eilutės Reikalauti galiojančio naudotojo, naudojama eilutė Reikalauti vartotojo Vartotojo vardas.

3. Pasirinktiniai klaidų puslapiai

Failas .htaccess leidžia sukurti priskirtus svetainės klaidų puslapius. Kai kurios dažniausiai daromos klaidos:

  • 400 bloga užklausa
  • 401 Reikalingas leidimas
  • 403 Uždraustas puslapis
  • 404 Failas nerastas
  • 500 vidinė klaida

Pasirinktiniai klaidų puslapiai kuriami siekiant, kad svetainės puslapiai būtų patogesni ir svetainės lankytojui būtų pateikta išsamesnė informacija nei numatytieji serverio klaidų puslapiai.

Pavyzdžiui, galite sukurti 404 puslapį (pabandykite sukurti bet kurį pasirinktą klaidos puslapį).

Sukūrę ir įkėlę klaidos puslapį nurodykite jo vietą .htaccess faile:

ErrorDocument 404 /new404.html

Prisiminti: Apache ieško 404 puslapio šakniniame svetainės kataloge. Įdėdami naują 404 klaidos puslapį į bet kurį pakatalogį, būtinai įtraukite tą pakatalogią į eilutę, pavyzdžiui:

ErrorDocument 404 /error_pages/new404.html

4. MIME tipai

Tais atvejais, kai svetainėje yra kai kurių programų failų, kurių serveris nebuvo sukonfigūruotas rodyti, Apache serverio MIME tipai gali būti įtraukti į .htaccess failą naudojant šį kodą:

AddType audio/mp4a-latm .m4a

Būtinai pakeiskite programą ir failo plėtinį norimu palaikyti MIME tipu.

5.SSI

„Server Side Includes“ technologija puikiai sutaupo laiką jūsų svetainėje. Vienas iš labiausiai paplitusių SSI naudojimo būdų yra atnaujinti daug puslapių, kuriuose yra tam tikras duomenų blokas, neatnaujinant kiekvieno puslapio atskirai (pavyzdžiui, norint pakeisti citatą puslapio apačioje).

Norėdami įjungti SSI, įveskite šį kodą į .htaccess:

AddType text/html .shtml
AddHandler server-parsed.shtml

Šios eilutės nurodo .htaccess, kad .shtml failai yra galiojantys, o antroji eilutė nurodo serveriui patikrinti, ar visuose failuose, kurie baigiasi .shtml, yra SSI komandos.

Tačiau jei serveryje yra daug .html puslapių, kurių plėtinį pakeisti į .shtml užtruks daug laiko, galite naudoti kitą taktiką, kad patikrintumėte, ar juose nėra SSI komandų. Tam naudojamas XBitHack parametras.

Pridėjus šią eilutę prie .htaccess failo, „Apache“ turi patikrinti visus html failus, turinčius atitinkamus „Server Side Includes“ leidimus.

Norėdami leisti puslapiui naudoti XBitHack, įveskite:

chmod +x puslapio_pavadinimas.html

Rezultatai

Šis vadovas apima tik pagrindines .htaccess puslapio funkcijas, tačiau dėl to darbas su svetaine tampa daug lankstesnis. Jei turite klausimų ar papildymų apie .htaccess failo galimybes, palikite komentarą.

Žymos: ,