Exemple de utilizare cea mai frecventă a fișierului htaccess. Redirecționați când accesați orice pagină de catalog

Data: 2009-05-18

Cu siguranță, când încărcați diverse scripturi sau doar pe server, ați dat peste un astfel de fișier .htaccess. Vă rugăm să rețineți că prezența unui punct în față este o necesitate!!! Dacă nu vedeți acest fișier, dar știți că ar trebui să fie, atunci cel mai probabil nu este afișat în setările Windows fișiere ascunse. Remediați-l ușor, accesați meniu Instrumente/Opțiuni foldere/Vizualizare/Fișiere și foldere ascunse. Aici punem comutatorul în poziția Afișează fișierele și folderele ascunse. Faceți clic pe Aplicare, OK. Sau uită-te la unele manager de fișiere, de exemplu eu folosesc Comandant total si va recomand.

Mulți, chiar și webmasteri avansați, nu știu întotdeauna ce înseamnă acest fișier, cum să lucreze cu el și, prin urmare, nu pot folosi toate caracteristicile disponibile.

Să înțelegem scopul și utilizarea.htaccess

fișier .htaccess ( rețineți că primul caracter din numele fișierului este un punct) este folosit pentru a gestiona serverul web Apache din partea utilizatorului final de găzduire. Puneți în acest fișier directive pe care serverul web le acceptă și le procesează, efectuând acțiuni ulterioare în conformitate cu setările făcute de utilizator.

Un fișier .htaccess poate fi plasat în directorul rădăcină al serverului web (direct în directorul public_html), caz în care directivele din acel .htaccess sunt valabile pe tot serverul web. De asemenea, .htaccess poate fi localizat într-un anume subdirector (folder) al serverului, iar apoi directivele care sunt specificate în acest fișier „overridesc” efectul directivelor din fișierul „principal”, care se află în directorul public_html sau în orice director de nivel superior. Adică efectul directivelor din .htaccess este moștenit de sus în jos, dar nu invers. Modificările aduse fișierului intră în vigoare imediat. Acest lucru se datorează faptului că informațiile din .htaccess sunt recitite de fiecare dată când este accesat serverul web Apache.

Acestea. cu alte cuvinte, în fișierul .htaccess scriem instrucțiuni pentru serverul web Apache. Aceste instrucțiuni pot fi distribuite atât întregului site ca întreg (dacă fișierul .htaccess este unul și se află în rădăcina site-ului), cât și unui anume director (dosar) (dacă fișierul .htaccess se află în acest folder, atunci instrucțiunile vor funcționa numai în acest folder).

Un exemplu de cea mai simplă utilizare a opțiunilor de configurare Apache prin fișierul .htaccess: Vrem să „explicam” serverului web că toate documentele html care sunt găzduite pe server ar trebui să fie „date” clientului în codificare koi8-r, și nu în Windows-1251, așa cum face serverul în mod implicit. Să punem linia în .htaccess:

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

După ce a primit un astfel de .htaccess, serverul web Apache va emite un antet către browser-ul clientului, care va indica faptul că documentul are codificare koi8-r.

Să ne uităm la alte exemple de utilizare a fișierului .htaccess:

Redefinirea fișierului index

Situație: utilizatorul a accesat directorul http://www.your_domen.ru/katalog/. La o astfel de solicitare, fișierul index index.html va fi deschis și afișat mai întâi. Dacă doriți să suprascrieți fișierul index și să îl faceți astfel încât primul care se deschide să nu fie index.html , ci de exemplu fișierul prais.php. Puteți face acest lucru plasând următoarea declarație în fișierul .htaccess în directorul corespunzător:

DirectoryIndex pret.php

După ce a primit un .htaccess cu acest conținut, serverul web Apache va deschide fișierul prais.php în mod implicit.

Restricționarea accesului la anumite fișiere

Uneori devine necesar să refuzi accesul la anumite fișiere. De exemplu, la fișierele de configurare care conțin detalii de acces la baze de date, interfețe etc. De exemplu, în fișierul config.cfg stocați login/parola pentru accesarea bazei de date. Creați un fișier .htaccess în acest director cu directive:

Comanda permite, refuza Deny de la toți

Acum, dacă un vizitator scrie ceva de genul http://your_domen/config.cfg în browser, va primi o eroare 403 sau pagina ta pentru eroarea respectivă. Citiți mai multe despre paginile de eroare

Cum se protejează cu parolă un director

Una dintre sarcinile comune pe care .htaccess le rezolvă este restricționarea accesului la un anumit director de pe server. De exemplu, trebuie să acordați acces la un anume director vizitatorilor individuali, oferindu-le în același timp o autentificare și o parolă unice.

În directorul la care dorim să restricționăm accesul prin parolă, creați un fișier .htaccess cu următoarele directive:

AuthType Basic AuthName „Unele nume” AuthUserFile /public_html/XX/YY/.htpasswd necesită un utilizator valid

Calea /public_html/XX/YY/.htpasswd este calea completă către fișierul cu parole de pe discul serverului. Dacă, de exemplu, plasați fișierul .htpasswd (va conține parole) în directorul dvs. de acasă, unde ajungeți la server prin FTP, atunci calea către acest fișier va arăta ca /public_html/XX/YY/.htpasswd.

În directiva AuthUserFile, specificați calea absolută către fișier cu date de conectare/parole. Dacă creați fișierul .htaccess pe computerul dvs. în loc de direct pe server folosind editor de text, acordați o atenție deosebită la ce.htaccess trebuie transferat prin FTP strict în modul text (ASCII)..

Creați un fișier cu parole .htpasswd . Fișierul cu parole trebuie să conțină linii precum login:parola . Parola trebuie criptată folosind algoritmul MD5. O modalitate de a crea un astfel de fișier este să utilizați programul care vine cu Apache - htpasswd (de obicei pe server se află în directorul /usr/local/bin/, calea completă este /usr/local/bin/htpasswd) . Utilizarea acestui program pe fiecare server este individuală - consultați furnizorul dvs. de găzduire.

După încheierea stabilirii tuturor autentificărilor și parolelor, fișierele trebuie încărcate pe server.

antet ultima modificare

Uneori doriți ca serverul web să emită antetul HTTP Last-Modified. De exemplu, atunci când vă înregistrați resursa pe Yandex, apare eroarea „Date nevalide”.

Pentru documentele statice, conform documentației Apache:

Serverul va returna ultima valoare modificată dacă este specificată directiva „XBitHack full” (doar scrieți această linie în .htaccess ), iar atributul „executable” pentru grup este setat pentru fișierul accesat.

Acest lucru este valabil pentru fișierele html. În scripturi, ultima modificare este returnată prin alte mijloace. De exemplu, având în vedere că scriptul php generează cod în mod dinamic, cel mai logic ar fi să dați data și ora curentă ca fiind ultima modificare. Acest lucru este implementat după cum urmează - în fișierul .htaccess scriem următoarea linie:

("Ultima modificare: " . gmdate ("D, d M Y H:i:s") . " GMT");

Ceea ce face aceasta este că serverul le va oferi roboților cea mai recentă dată de actualizare a documentului, o caracteristică foarte utilă.


Probabil știi că totul setări de bază Serverele Apache sunt localizate în fișierul httpd.conf, care nu este întotdeauna accesibil. De exemplu, dacă se folosește un server virtual pe găzduire, atunci când un server deservește mai mult de o sută de site-uri, atunci este imposibil să se permită proprietarului unui site să schimbe configurația întregului server, deoarece acest lucru va afecta toate celelalte site-uri. Cu toate acestea, serverul web Apache permite configurarea în timp de execuție pentru directoare individuale folosind fișiere .htaccess.

Un avertisment:
Serverul web Apache nu listează adesea fișierele cu un punct la începutul numelui și nu sunt afișate prin clienții FTP.

Pentru control deplin asupra unor astfel de fișiere, aveți nevoie de acces fizic la server sau de un client de la distanță cu drepturi depline. Prin FTP, veți lucra orbește, trimițând comenzi către server prin Linie de comanda(Cred că comanda „help” din linia de comandă nu va fi de prisos). Fișierul .htaccess este un fișier de configurare care vă permite să configurați serverul la nivelul directoarelor individuale: setați drepturi de acces la fișierele din directoare, modificați numele fișierelor index, procesați în mod independent codurile de răspuns HTTP, modificați adresele paginilor solicitate .

Notă:
Fişier .htaccess poate fi plasat în orice director. Directivele din acest fișier afectează toate fișierele din directorul curent și toate subdirectoarele acestuia (cu excepția cazului în care aceste directive sunt suprascrise de directivele fișierului .htaccess din subdirectoare).
Modificările aduse fișierelor .htaccess au efect imediat și nu necesită o repornire a serverului, spre deosebire de modificările aduse fișierului principal de configurare httpd.conf.
Pentru ca fișierele .htaccess să fie utilizate, sunt necesare setări adecvate în fișierul principal de configurare httpd.conf, unde trebuie scrise directive care permiteți fișierului .htaccess să suprascrie configurația serverului webîn director. Lista acestor directive este dată de directiva AllowOverride.

Directiva AllowOverride poate include una dintre următoarele directive sau o combinație a acestora:
AuthConfig, FileInfo, Indexes, Limit, Options, All, None
Pentru a acorda directivelor fișierelor .htaccess permisiunea maximă de a schimba directive, valoarea directivei AllowOverride din fișierul httpd.conf trebuie setată la Toate. Este valoarea implicită.
AllowOverride All
Puteți dezactiva redefinirea oricăror directive din fișierele de configurare .htaccess folosind valoarea None:
AllowOverride Nici unul

Cometariu:
Numele fișierului de configurare poate fi schimbat și, de exemplu, poate fi numit nu .htaccess, ci access.conf. Directiva AccessFileName din fișierul httpd.conf este responsabilă pentru numele acestui fișier. Schimbarea numelui fișierului de configurare .htaccess nu este recomandată, deoarece acest lucru poate complica în continuare întreținerea serverului.

Sintaxă.htaccess

Înainte de a ne uita la exemple, să ne concentrăm pe sintaxa directivelor din fișierele .htaccess.

Căile către fișiere și directoare trebuie specificate ca adresare absolută de la rădăcina partiției.
De exemplu:
/home/users/vasya999/public_html/a_content/masters/

Când se specifică adrese URL absolute, trebuie specificate protocoalele, de exemplu:
Redirecționare / http://www.site.ru

În fișierele .htaccess, spațiile nu sunt permise în căile către fișiere și în numele fișierelor în sine, deoarece aceasta are ca rezultat generarea unui cod de răspuns de 500 - eroare de configurare a serverului: „Eroare de server intern”.

.htaccess exemple

Pagini index

Fișierele index sunt fișiere încărcate implicit atunci când nu este specificată nicio resursă în URL. De exemplu:
http://site.ru/ - resursa nu este specificată (fișier, pagină), dar serverul va încărca în continuare ceva de genul index.html.

Pot exista situații când este necesară modificarea compoziției fișierelor index, de exemplu, dacă aveți nevoie de o pagină de index index.php, dar aceasta nu este înregistrată în fișierul principal de configurare httpd.conf. Această sarcină poate fi rezolvată folosind fișierul .htaccess, în care trebuie să creați directiva DirectoryIndex, care va lista numele paginilor de index:
DirectoryIndex index.php index.html index.htm
Când se solicită un director fără a specifica un nume de fișier, va căuta mai întâi o pagină numită index.php, iar dacă nu este găsită, atunci index.html și așa mai departe. până la sfârșitul listei, până când pagina corespunzătoare este găsită și deschisă.

Interziceți afișarea conținutului directorului în absența unui fișier index

Adesea este necesar să împiedicați afișarea unei liste de fișiere dintr-un director dacă nu este specificat sau lipsește un fișier index. De exemplu, să interziceți afișarea conținutului unui director cu imagini. Dacă nu este setată o astfel de interdicție, atunci utilizatorul care accesează direct un astfel de director va primi o listă cu toate imaginile. Dar vom adăuga o directivă
Opțiuni – Indici

Gestionarea codurilor de răspuns ale serverului web

Niciun site nu este imun la erori. cel mai greseala comuna este să urmezi un link către o pagină inexistentă. În acest caz, Apache generează un cod de răspuns 404 și afișează o pagină de eroare generată automat. Prezența paginilor inexistente creează o impresie proastă asupra vizitatorilor site-ului. Această impresie poate fi netezită dacă, în loc de pagini standard, înlocuiți propriile pagini cu un mesaj de eroare. Directiva ErrorDocument este responsabilă pentru alocarea paginilor - handlere a codurilor de răspuns ale protocolului HTTP
ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html ErrorDocument 500 „Interzis”
După directiva ErrorDocument, trebuie să specificați codul de răspuns și pagina către care doriți să redirecționați vizitatorul atunci când apare acest cod de răspuns.

De asemenea, în locul adresei paginii, puteți specifica un răspuns simplu text între ghilimele.

Decriptarea mai multor coduri de răspuns de server (coduri de stare de răspuns HTTP):
Eroare 401 - Solicitarea necesită autentificarea utilizatorului (Neautorizat).
Eroare 403 - Accesul la resursa solicitată este interzis (Interzis).
Eroare 404 - Documentul solicitat nu există pe server (Nu a fost găsit).
500 error - Eroare de configurare a serverului sau program extern(Internal Server Error).

Permiterea sau interzicerea executării codului PHP

Permisiune de execuție. De obicei, codul PHP în HTML este executat în fișiere cu extensii php. Uneori apar situații când este necesar să executați cod PHP în fișiere cu o extensie diferită. În acest caz, puteți instrui serverul Web să execute cod PHP nu numai în fișierele cu extensie php, ci și în fișierele cu extensie html.
RemoveHandler .html .htm AddType application/x-httpd-php .php .htm .html .phtml
Prima linie elimină handlerul pentru fișierele html și htm, iar a doua linie îi spune serverului să folosească handlerul PHP pentru fișierele htm și html.

Prevenirea execuției PHP, de exemplu într-un director cu imagini:
php_flag engine 0 RemoveHandler .phtml .php .php3 .php4 .php5 AddType text/html .phtml .php .php3 .php4 .php5
- protectie elementara impotriva hackurilor cu incarcarea shell-ului.

Setarea codificării pe server

Codificarea specificată este trimisă browserului în antetul Content-Type și va permite browserului client să comute automat la codificarea necesară.
AddDefaultCharset utf-8

Setarea codificării fișierelor încărcate

Când încărcați fișiere pe server, puteți specifica în ce codificare ar trebui să aștepte serverul fișierul.
CharsetSourceEnc windows-1251

Dezactivarea directivei MultiViews

Opțiunea MultiViews activată pe găzduire poate cauza probleme neașteptate, de exemplu, afișarea paginilor inexistente ale site-ului sau imposibilitatea de a accesa cele existente. Să presupunem că există o pagină pe site cu adresa http://www.sait.ru/down.php, iar dacă vizitatorii accesează directorul inexistent http://www.sait.ru/down/, atunci Opțiunea MultiViews va înlocui acest director cu fișierul down.php. Cu toate acestea, înlocuirea nu va fi finalizată complet - căi către imagini, foi de stil etc. va fi setat incorect. Adică pagina va fi afișată cu distorsiuni. Pentru a suprima acest comportament Apache, opțiunea MultiViews ar trebui să fie dezactivată.
Opțiuni-MultiViews

Accesul la fișier a fost refuzat

Pentru a împiedica vizitatorii să acceseze fișierele de serviciu dintr-o fereastră de browser, puteți bloca accesul la astfel de fișiere. Pentru aceasta, se utilizează directiva Deny și permisiunile de acces Allow.
Notă
Utilizarea directivelor Deny și Allow controlează numai accesul la fișiere din browser sau din alt program client. Astfel de interdicții nu se aplică scripturilor de server.
Interziceți accesul la fișiere din browser Interziceți de la toți
Când utilizați o astfel de directivă, accesul din browser la toate fișierele și directoarele directorului curent va fi refuzat. Interziceți accesul la un anumit fișier, de exemplu, doar fișierele numite config.php au acces aici
Negați de la toți

Interzicerea accesului la fișierele inc
Negați de la toți

Expresiile regulate pot fi folosite pentru a preveni accesul la fișiere cu mai multe tipuri de extensii:
Negați de la toți

Accesul la fișierele inc, conf și cfg este interzis

Sau utilizați constructul FilesMatch:
Comanda permite, refuza Deny from all Satisf All
Accesul la fișierele care încep cu „.ht” (punct urmat de ht urmat de orice) este interzis.

Interziceți sau permiteți accesul de la o anumită adresă IP sau subrețea

Comanda refuza, permite
Refuza de la 100.111.222.70 133.252.0.0/24

Permiteți accesul numai de la o anumită adresă IP
Comanda refuza, permite refuzul tuturor
Permite de la 100.111.222.70
Directiva Order vă permite să specificați ordinea în care vor fi executate directivele. Mai întâi, este executată directiva de refuzare a accesului (Deny), iar apoi accesul este permis pentru adresa IP 100.111.222.70 (Allow). Dacă modificați ordinea directivelor din prima linie la Order allow, deny, atunci accesul pentru adresa IP 100.111.222.70 nu va fi deschis, deoarece directiva Deny, care este executată ultima, va suprascrie efectul directivei Allow.

Notă:
Trebuie remarcat că permiterea accesului de la o anumită adresă IP poate să nu funcționeze uneori. De exemplu, dacă pe găzduire este instalat un server proxy de cache inversă. Dacă directivele privind permisiunea de acces nu funcționează, atunci trebuie să contactați serviciul pentru această problemă. suport tehnic gazduire.

Redirecționare către o altă adresă (redirecționare)

Adesea, există sarcini când toate solicitările către o anumită adresă trebuie redirecționate către o altă adresă. Acest lucru se poate face folosind directivele Redirect și RedirectMatch. Ei raportează că lipsește resursa de la adresa URL solicitată și indică adresa la care să mergi.

Serverul, folosind directiva de redirecționare, trimite browserului antetul corespunzător, iar browserul deja redirecționează.

Redirecționare globală către o nouă adresă
Redirecționare / http://www.site.ru/

Redirecționați când accesați un anumit fișier
Redirecționare /books/index.php http://www.site.ru/new/

Redirecționați când accesați orice pagină de catalog
RedirectMatch /books/.* http://www.site.ru/new/

Redirecționați când accesați orice pagină a site-ului
RedirectMatch /.* http://www.site2.ru/

De asemenea, puteți utiliza o redirecționare condiționată, de exemplu, când intrați pe un site de pe www (www.site.ru) sau către subdomeniul „sub.site.ru”, trebuie să redirecționați către domeniul principal fără www:
RewriteCond %(SERVER_NAME) ^www\.site\.ru RewriteCond %(SERVER_NAME) (www\.)?sub\.site\.ru RewriteRule ^(.*)$ http://site.ru/$1

Sau luptă împotriva roboților răi:
RewriteCond %(HTTP_USER_AGENT) (crawler|spider|scraper) RewriteCond %(HTTP_USER_AGENT) (Excite|360Spider|haosou|MJ12bot) #Nimeni acasă
RewriteRule ^(.*)$ - #sau chiar Interzis
#RewriteRule ^(.*)$ -

Dacă sunteți interesat să configurați modurile serverului WEB prin fișierul .htaccess, citiți documentația serverului web Apache despre modulul mod_rewrite și .htaccess.

Pentru ca .htaccess să fie utilizat, sunt necesare setări adecvate în fișierul principal de configurare Apache - httpd.conf .
permitoverride. Poate fi setat pentru întregul server (la nivel global) sau pentru un singur director.

Directiva AllowOverride poate include una dintre următoarele directive sau o combinație a acestora: All, None, AuthConfig, FileInfo, Indexes, Limit, Options .

AllowOverride All

Sintaxă.htaccess

redirecționare /companie http://www.newsite.com/newcompany
redirecționare /forum http://www.newsite.com/newforum

SetEnvIf REMOTE_ADDR 192.145.121.1 REDIR="redir"
RewriteCond %(REDIR) redir
RewriteRule ^/$ /only_for_you.html

DirectoryIndex index.html index.php index x.shtml

RemoveHandler .html .htm
Aplicație AddType/x-httpd-php .php .ht m .html .phtml

Tratarea erorilor Apache

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500/500.html






Opțiuni-Indici

AddDefaultCharset windows-1251

CharsetSourceEnc windows-1251

Interziceți accesul la toate fișierele

nega de la toti

comanda refuza, permite
nega de la toti
permite de la 195.135.232.70

nega de la 195.135.232.70

[eroare: Markup invalid ireparabil(" „) în intrare. Proprietarul trebuie să repare manual. Conținutul brut de mai jos.]

Pentru ca .htaccess să fie utilizat, sunt necesare setări adecvate în fișierul principal de configurare Apache -httpd.conf.
Fișierul httpd.conf trebuie să conțină directive care să permită fișierului .htaccess să suprascrie configurația serverului web din director. Această directivă se numește permitoverride. Poate fi setat pentru întregul server (la nivel global) sau pentru un singur director.

Directiva AllowOverride poate include una dintre următoarele directive sau o combinație a acestora: Toate, Niciunul, AuthConfig, FileInfo, Indexuri, Limită, Opțiuni.

Pentru a oferi directivelor fișierelor .htaccess drepturi maxime, ar trebui să vă înregistrați în httpd.conf:

AllowOverride All

Sintaxă.htaccess

Înainte de a ne uita la exemple, să ne concentrăm pe sintaxa directivelor din fișierele .htaccess.


  • Căile către fișiere și directoare trebuie specificate din rădăcina serverului, de exemplu, /pub/home/server1/html/

Dacă nu cunoașteți calea de la rădăcina serverului, atunci o puteți afla întrebând administratorul serverului sau o puteți vedea singur rulând funcția PHP phpinfo() de pe site. Acesta va afișa configurația PHP ca tabele violet. Trebuie să găsiți variabila doc_root în ele și să vă uitați la valoarea acesteia - aceasta va fi calea de la rădăcina serverului la directorul dvs. principal.


  • Numele de domenii trebuie să conțină protocoale, de exemplu:


.htaccess exemple


Redirecționare globală (redirecționare) către o altă adresă:

Redirecționare / http://www.newsite.ru

Redirecționare (redirecționare) numai când se solicită anumite pagini:

redirecționare /companie http://www.newsite.com/newcompany
redirecționare /forum http://www.newsite.com/newforum

La solicitarea paginilor din directoarele companiei și forumurilor, se vor face redirecționări către adrese noi.

Redirecționați (redirecționați) numai vizitatorii cu o anumită adresă IP:

SetEnvIf REMOTE_ADDR 192.145.121.1 REDIR="redir"
RewriteCond %(REDIR) redir
RewriteRule ^/$ /only_for_you.html

Dacă vizitatorul are o adresă IP de 192.145.121.1, atunci i se va deschide pagina only_for_you.html.

Schimbarea numelui paginii de index:

DirectoryIndex index.html index.php index.shtml

Puteți specifica mai multe pagini de index. La solicitarea unui director, acestea vor fi căutate în ordinea în care sunt listate în directiva DirectoryIndex. Dacă fișierul index.html nu este găsit, acesta va căuta fișierul index.php și așa mai departe.

Executați cod PHP în fișiere HTML

RemoveHandler .html .htm
Aplicație AddType/x-httpd-php .php .htm .html .phtml

Adăugând aceste linii la .htaccess, veți direcționa serverul să execute instrucțiuni PHP nu numai în fișierele *.php și *.phtml, ci și în fișierele *.htm și *.html.

Tratarea erorilor Apache

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500/500.html

Când apar aceste erori, vizitatorul va fi redirecționat către pagini special create.


  • Eroare 401 - Este necesară autorizarea.

  • Eroare 403 - utilizator neautentificat, acces refuzat (interzis).

  • Eroare 404 - Documentul nu a fost găsit (Negăsit).

  • eroare 500 - Eroare internă server (Eroare Interna Server).

Interziceți afișarea conținutului directorului în absența unui fișier index

Opțiuni-Indici

Determinarea codificării în care serverul „da” fișiere

AddDefaultCharset windows-1251

Determinarea codificării fișierelor încărcate

CharsetSourceEnc windows-1251

Interziceți accesul la toate fișierele

nega de la toti

S-a refuzat accesul la toate fișierele și directoarele din directorul curent.

Permiteți accesul numai de la o anumită adresă IP

comanda refuza, permite
nega de la toti
permite de la 195.135.232.70

Linia order deny,allow specifică ordinea în care trebuie executate directivele. În primul rând, directiva de deny access este executată, iar apoi accesul este permis numai pentru adresa IP 195.135.232.70. Dacă în prima linie ordinea directivelor este schimbată în order allow,deny, atunci accesul pentru această adresă IP nu va fi deschis, deoarece directiva deny executată ultima va suprascrie acțiunile directivei allow.

Interziceți accesul de la o anumită adresă IP

nega de la 195.135.232.70

Interziceți accesul la un anumit fișier


nega de la toti

Accesul vizitatorilor la fișierele config.php este interzis. Această interdicție nu afectează scripturile serverului web. Ei vor avea în continuare acces la acest fișier.

Interziceți accesul la fișierele cu o anumită extensie


nega de la toti

Accesul la fișierele cu extensia *.conf este interzis aici. Directivă , când se specifică un nume de fișier, permite caracterele joker.

? - orice personaj
* - orice succesiune de caractere, excluzând caracterul / (slash)

Interziceți accesul la fișierele cu mai multe tipuri de extensii


nega de la toti

Accesul la fișierele cu extensii *.inc, *.conf și *.cfg este interzis. Deşi directiva , implicit, nu funcționează cu expresii regulate, dar pot fi activate punând caracterul tilde (~) în opțiunile directivei. Sintaxa este următoarea:
[tilde] [spațiu] [next_all_without_spaces]

Setarea unei parole pentru un director

AuthName „Pagină de administrare”
AuthType Basic
AuthUserFile /pub/home/server/.pass
necesită un utilizator valid

Apache- Cel mai comun server HTTP. Este distribuit gratuit, inclusiv textele sursă. Scripturile sunt acceptate CGI(inclusiv FastCGI), PHP, Perl, Java. Autentificare - de bază, mesaj-digest, TLS (SSL). Din aprilie 1996 este cel mai popular server HTTP pe Internet, în august 2007 rula pe 51% din toate serverele web.

.htaccess- fișier de configurare suplimentar al serverului web Apache, precum și servere similare. Vă permite să setați un număr mare opțiuni suplimentareși permisiuni pentru a rula serverul web pe utilizatori individuali (precum și pe diferite foldere ale utilizatorilor individuali), cum ar fi acces controlat la director, reatribuirea tipurilor de fișiere etc. fără a da acces la fișierul principal de configurare, adică. fără a afecta funcționarea întregului serviciu.

.htaccess este o asemănare httpd.conf cu diferența că afectează doar directorul în care se află și directoarele sale fii. Utilizabilitate .htaccess prezente în orice director de utilizatori.

Fişier .htaccess poate fi plasat în orice director al site-ului. Directivele acestui fișier afectează toate fișierele din directorul curent și toate subdirectoarele acestuia (cu excepția cazului în care aceste directive sunt suprascrise de directivele fișierelor de bază .htaccess).

directive .htaccess oferă utilizatorului o gamă largă de opțiuni pentru personalizarea site-ului, inclusiv:










O listă cu toate directivele disponibile poate fi vizualizată.

HTTP_ACCEPT

Descrie preferințele clientului cu privire la tipul de document.

REMOTE_ADDR

adresa IP a vizitatorului.

GAZDA LA DISTANTA .

Adresa vizitatorului în formă normală - de exemplu, rt99.net.ru .

REMOTE_IDENT

Numele utilizatorului de la distanță. Are formatul name.host, de exemplu, www.rtt99.net.ru

REMOTE_USER

La fel ca REMOTE_IDENT, dar conține doar numele. Exemplu: kondr

REQUEST_METHOD

Vă permite să determinați tipul de solicitare (GET sau POST). Trebuie analizat, pentru că determină modul în care urmează să fie procesată informația.

SCRIPT_FILENAME

Calea completă către pagina web de pe server.

PATH_INFO

Conține tot ce a fost trecut în scenariu.

ȘIR DE INTEROGARE

Conține șirul transmis ca cerere la apel CGI scenariu.

AUTH_TYPE

Folosit pentru a identifica utilizatorul

DOCUMENT_ROOT

Conține calea către directorul rădăcină al serverului.

SERVER_ADMIN

Adresa poștală proprietarul serverului specificat în timpul instalării.

NUMELE SERVERULUI SERVER_ADDR

Adresa IP a site-ului dvs.

SERVER_PORT

Portul pe care rulează Apache.

SERVER_PROTOCOL

Versiune HTTP protocol.

SERVER_SOFTWARE

Numele serverului, de exemplu, Apache/1.3.2 (Unix)

TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIMP

Variabile concepute pentru a funcționa cu timpul în diferite formate.

API_VERSION

Aceasta este versiunea API modul Apache(interfață internă între server și modul) în versiunea curentă a serverului, așa cum este definit în include/ap_mmn.h.

CEREREA

Linie completă HTTP-cerere trimisă de browser către server (adică, „GET /index.html HTTP/1.1”). Nu include niciun antet suplimentar trimis de browser.

REQUEST_URI

Resursa solicitată în șirul de solicitare HTTP.

REQUEST_FILENAME

Calea completă din sistemul de fișiere al serverului către fișierul sau scriptul care se potrivește cu această solicitare.

IS_SUBREQ

O condiție este un șablon de condiție, de ex. o expresie regulată aplicată instanței curente a „Șirului comparat”, adică „Șirul comparat” este căutat pentru o potrivire cu Condiția.
Amintiți-vă că condiția este perl-expresie regulată compatibilă cu unele completări:


Toate aceste verificări pot fi precedate de prefix Semnul exclamarii("!") pentru a le inversa valoarea.

RewriteEngine activează sau dezactivează funcționarea mecanismului de conversie. Dacă este setat la oprit, acest modul nu funcționează deloc. Rețineți că, implicit, setările de transformare nu sunt moștenite. Aceasta înseamnă că trebuie să aveți o directivă RewriteEngine on pentru fiecare gazdă virtuală în care doriți să utilizați acest modul.
Sintaxă RewriteEngine după cum urmează:

Utilizați pentru a combina condițiile în reguli SAUîn loc de ȘI. Un exemplu tipic este redirecționarea cererilor pentru subdomenii către directoare separate.

Pentru emiterea diferitelor site-uri pt browsere diferite, conform "Agent utilizator:" antet cerere, puteți utiliza următoarele directive:


În înlocuire, puteți folosi, printre altele, steaguri speciale, adăugând directiva ca al treilea argument RewriteRule. Steaguri este următoarea listă de steaguri, separate prin virgulă:

„redirecționare|R[=cod]”
(provoacă o redirecționare)
Prefix în înlocuire vizualizare http://thishost[:thisport]/(crearea unui nou URL din oricare URI) pornește o redirecționare externă (redirecționare). Dacă nu există cod, în înlocuire răspunsul va fi HTTP starea 302 (TEMPORAR ÎNTRASAT). Pentru a opri procesul de conversie, trebuie să scrieți și un steag "L".

„interzis|F[=cod]”
(face URL-ul interzis)
Aceasta face curentul URL interzis, de exemplu, un răspuns este imediat trimis clientului cu HTTP statutul 403 (Interzis). Utilizați acest steag împreună cu cel corespunzător RescrieCond a bloca URL conform unor criterii.

„a plecat|G[=cod]”
(face URL-ul „mort”)
Acest steag face curent URL„mort”, adică trimis imediat HTTP răspuns cu starea 410 ( PLECAT). Utilizați acest steag pentru a marca paginile „moarte” care nu mai există.

„proxy|P[=cod]”
(apelează proxy)
Acest indicator marchează partea wildcard ca o solicitare proxy internă și imediat (adică procesul de conversie se oprește aici) o trece prin modulul proxy. Utilizați acest indicator pentru a obține o implementare mai puternică a directivei. ProxyPass, care integrează un anumit conținut de pe servere la distanță în spațiul de nume al serverului local.

„ultimul|L[=cod]”
(ultima regula)
Opriți procesul de transformare în acest moment și nu aplicați alte reguli de transformare. Utilizați acest steag pentru a nu converti curentul URL alte reguli de transformare care urmează.

„următorul|N[=cod]”
(următoarea rundă)
Reporniți procesul de transformare (începând cu prima regulă). În acest caz URL se potrivește din nou cu unele condiții, dar nu cu originalul URL, dar URL ieșit din regula ultimei transformări. Utilizați acest indicator pentru a reporni procesul de conversie, de ex. salt neconditionat la începutul ciclului.

„lanț|C[=cod]”
(legat la următoarea regulă)
Acest steag leagă regula curentă de următoarea (care, la rândul său, poate fi legată de următoarea etc.). Acest lucru are următorul efect: dacă există o potrivire pentru regulă, procesul continuă ca de obicei, adică. steagul nu are efect. Dacă regula nu se potrivește cu condiția, toate regulile ulterioare asociate sunt ignorate.

„tip|T=tip MIME [=cod]”
(forțați setarea tipului MIME)
Instalarea forțată tip MIME fișierul țintă în tip MIME. De exemplu, aceasta poate fi folosită pentru a simula mod_alias directive ScriptAlias, care forțează setarea pentru toate fișierele din directorul afișat MIMA tip egal „application/x-httpd-cgi”.

„nosubreq|NS[=cod]”
(utilizat numai în cazul unei subinterogări non-interoare)
Acest flag indică motorului de transformare să ignore directiva dacă subinterogarea curentă este o subinterogare internă. De exemplu, subinterogări interne în Apache apare atunci când mod_include încearcă să obțină informații despre fișiere posibile implicit pentru directoare (index.xxx). Cu subinterogări, acest lucru nu este întotdeauna util și chiar uneori provoacă o problemă cu setul de directive de transformare. Utilizați acest steag pentru a exclude anumite reguli.

„nocase|NC[=code]”
(indiferent între majuscule și minuscule)
Acest lucru face ca șablonul să nu țină seama de majuscule și minuscule, de exemplu. nu există nicio diferență între „A-Z” și „a-z” atunci când șablonul este aplicat curentului URL.

„qsappend|QSA[=cod]”
(adăugați șirul de interogare)
Acest indicator îi spune motorului de transformare să adauge, mai degrabă decât să înlocuiască, un șir de interogare din URL la unul existent, în șirul de substituție. Utilizați acest lucru atunci când doriți să adăugați date suplimentare la șirul de interogare folosind directive de transformare.

„noescape|NE[=code]”
(nu scapă URI la ieșire)

Acest steag nu mod_rewrite aplica regulile normale de evadare URI la rezultatul transformării. De obicei, Simboluri speciale(cum ar fi „%”, „$”, „;”, și așa mai departe) vor fi scăpate de substituțiile lor hexadecimale („%25”, „%24”, respectiv „%3B”, respectiv); acest steag îl împiedică să facă acest lucru.

Dacă în subdirectoare în .htaccess nu există nicio directivă de modul mod_rewrite, atunci toate regulile de traducere sunt moștenite din directorul părinte.

Dacă este prezent în dosar .htaccess orice directive de modul mod_rewrite nimic nu este moștenit, iar starea implicită este setată la aceeași ca în fișierul principal de configurare a serverului web ("off" în mod implicit). Prin urmare, dacă aveți nevoie de reguli de traducere pentru un anumit director, atunci trebuie să introduceți directiva " Motor de rescrie pornit„în .htaccess pentru un anume director.

Când moșteniți reguli din directoarele superioare și adăugați altele noi specifice numai acestui director, trebuie să setați următoarele la început: " Motor de rescrie pornit" Și " RewriteOptions moștenește" - ultima directivă spune serverului să continue.

Exemple de utilizare mod_rewrite poti sa vezi

Daca ai instalat sistem de operare familii Windows, Vă puteți conecta la server prin SSH(se pot găsi instrucțiuni de conectare) și utilizați utilitarul htpasswd.

Alergare htpasswd fara parametri vom vedea:

[email protected]~#htpasswd
Utilizare:
htpasswd [-cmdps] nume de utilizator pentru fișierul de parole
htpasswd -b passwordfile nume utilizator parola
-c Creați un fișier nou.
[email protected] ~ #

Nu vom acoperi aici toate opțiunile pentru această comandă, dar puteți citi singuri detaliile rulând htpasswdîn shell unix, sau consultând pagina de documentație Apache relevantă.

Deci, inițial nu avem încă un fișier cu parole și trebuie să-l creăm:

Și acum vrem să adăugăm un alt utilizator. Deoarece avem deja un fișier cu parolă, pur și simplu nu vom folosi opțiunea „-c”:

arătând utilizator valid, Permiteți accesul tuturor utilizatorilor listați în fișierul cu parole.

Să dăm un exemplu pentru accesarea anumitor utilizatori dintr-un fișier cu parole .htpasswd


AuthName" Arie protejata, necesita autorizatie" AuthType Basic AuthUserFile /home/t/test/.authfile necesită un utilizator valid

Trebuie amintit că, cu o astfel de restricție de acces, parolele sunt transmise prin canale de comunicare în text clar și, în anumite circumstanțe, pot fi interceptate de intruși. Prin urmare, din motive de securitate, se recomandă organizarea accesului la zonele restricționate ale site-ului printr-un sistem securizat Conexiune SSL.