Sintaxă și caracteristici. Specificarea paginii de pornire folosind un fișier. Directive valide în .htaccess

.htaccess(cu un punct la începutul numelui) este un fișier care face posibilă configurarea serverului în directoare (foldere) separate, fără a oferi acces la fișierul principal de configurare. Vă va permite: să setați drepturi de acces la fișierele dintr-un director, să schimbați numele fișierelor index, să gestionați în mod independent erorile Apache, să redirecționați vizitatorii către pagini speciale de eroare.

Acest lucru este destul de convenabil în cazul în care trebuie să suprascrieți directivele de control al serverului WEB pentru un anumit director sau site (dacă există mai multe site-uri pe serverul WEB) și nu doriți să modificați setările pentru toate celelalte. Și, de asemenea, în cazurile în care nu aveți acces la fișierul httpd.conf.

Fișierul .htaccess poate fi plasat în orice director. 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 .htaccess subiacente). Pentru ca aceste fișiere .htaccess să fie utilizate, sunt necesare setări corespunzătoare în fișierul de configurare principal. Majoritatea hosterii vă permit să utilizați setările din fișierul .htaccess, iar dacă nu o fac, atunci cel mai probabil ați luat un pachet foarte ieftin cu un minim de caracteristici sau ați ajuns cu cel mai prost hoster.

Directive valide în .htaccess

Căile către fișiere și directoare trebuie specificate de la rădăcina serverului, de exemplu, /pub/home/server/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 căuta singur rulând pe site-ul web Funcția PHP- phpinfo(). Trebuie să găsiți variabila doc_root ș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ă includă protocoale, de exemplu:

Redirecționare / http://www.test-page.ru

Redirecționare globală (redirecţiona) la o altă adresă:

Redirecționare / http://www.test-page.ru

Redirecționare (redirecționare) numai la solicitarea anumitor pagini:

Redirecționează /data http://test-page.com/data
redirecționare /forum http://test-page.com/forum

La solicitarea paginilor din directoarele de date și forum, se va face redirecționarea către noi adrese.
Redirecționează toate solicitările, cu excepția .gif și .jpg:

RewriteEngine Pornit
RewriteRule !.(gif|jpg)$ index.php

Toate cererile, cu excepția cererilor de fișiere cu extensiile .gif și .jpg, vor fi redirecționate către fișierul index.php

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

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

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

Schimbarea numelui paginii de index:

DirectoryIndex index.html index.php index.shtml

Puteți specifica mai multe pagini de index. Când un director este interogat, ele vor fi căutate în ordinea în care sunt listate în directiva DirectoryIndex. Dacă fișierul index.html nu este găsit, atunci fișierul index.php va fi căutat etc.

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 instrui serverul să execute instrucțiuni PHP nu numai în fișierele cu extensii *.php și *.phtml, ci și în fișierele cu extensii *.htm și *.html. De asemenea, puteți adăuga orice alte extensii de fișiere acolo, de exemplu .code sau .kot, astfel de trucuri pot deruta uneori un hacker care încearcă să vă spargă scripturile.

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 403 - utilizatorul nu a trecut de autentificare, accesul este interzis (interzis).

Eroare 404 - Documentul nu a fost găsit.

eroare 500 - Eroare internă servere ( Server intern Eroare).

Interzicerea afișării conținutului directorului(dacă nu există index.php sau index.html în folder)

Opțiuni -Indici

Definiția codificării, în care serverul trimite pagini utilizatorului

AddDefaultCharset utf-8

Determinarea codificării fișierelor descărcate

CharsetSourceEnc windows-1251
sau
CharsetSourceEnc utf-8

Interziceți accesul la toate fișierele

nega de la toti

Accesul la toate fișierele și directoarele din directorul curent este interzis.

Permite accesul numai de la o anumită adresă IP

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

Linia order deny,allow specifică ordinea în care trebuie executate directivele. Directiva de refuzare a accesului este executată mai întâi, iar apoi accesul este permis numai pentru adresa IP 192.168.11.1. Dacă în prima linie modificați ordinea directivelor la 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 din 192.168.11.1

Interziceți accesul la fisier specific


nega de la toti

Accesul vizitatorilor la fișiere este interzis config.php. Această interdicție nu se aplică scripturilor de server 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 *.ini este interzis aici. Directiva, atunci când specifică nume de fișiere, permite utilizarea caracterelor 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 extensia *.inc, *.conf, *.cfg, *.pass este interzis. Deși directiva, implicit, nu funcționează cu expresii regulate, acestea pot fi activate punând caracterul tilde (~) în opțiunile directivei. Sintaxa este următoarea:

Setarea unei parole pentru un director

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

Tastând adresa în bara browserului, primiți fișiere pe computer pe care le afișează browserul. Serverul web controlează ce fișiere și cum să vi le afișeze (trimite). Există două servere cele mai populare: IIS și .

Ca orice program, un server web are anumite setari. Dar, tu, ca utilizator Apache, poți (și cel mai probabil nu vei avea, dacă vorbim despre găzduire partajată) drepturi de a modifica configurația Apache prin fișierele sale principale, efectul căruia se aplică tuturor utilizatorilor acestui server. Dar, puteți modifica unele fișiere de configurare, care se aplică doar site-ului dvs. Unul dintre aceste fișiere este .htaccess

Acesta este un fișier setări flexibile Server web Apache. „Flexibil” înseamnă că de îndată ce modificați ceva în acest fișier, modificările intră imediat în vigoare. Folosind-o, puteți suprascrie multe directive din fișier httpd.conf(acest fișier este cel principal fișier de configurare Serverul Apache și acțiunile sale se aplică pe deplin tuturor utilizatorilor acestei copii a Apache). În cazurile în care nu aveți acces la fișierul de configurare Apache (același gazduire virtuala), acest fișier vă va ajuta.

Acest fișier nu este accesibil utilizatorului web din browser. Dacă dosar. htaccess se află în directorul rădăcină al serverului, acțiunile sale se aplică întregului server, cu excepția acelor foldere în care se află un alt fișier. htaccess(și pe lângă toate folderele „de mai jos” acest folder cu al doilea. htaccess).

Structura directoarelor dvs. de pe server este astfel:

|-utilizator | | | -utilizator1 | | | -utilizator2 | |-date | | | -data1 | | | -data2 |

Directoare utilizator1Şi utilizator2 va fi imbricat în raport cu directorul utilizator. Dacă îl punem într-un director www fişier. htaccess, atunci efectul său se va extinde automat la directoare utilizator1Şi utilizator2.

În director date pune alt dosar. htaccess, în comparație cu ceea ce este în director utilizator. Atât pentru directoarele data1 cât și pentru data2, va funcționa fișierul .htaccess aflat în data.

RewriteRule ^old(.*)$ /new.php

Folosit pentru a defini grupuri de caractere sau „etichete” într-un șablon. De exemplu, semnele de început sau de sfârșit de linie.

Metacaracterele
\ Slash „Escape”. Următorul caracter după acesta este considerat un caracter obișnuit, nu un caracter special. Simbolul \ este plasat înaintea caracterelor speciale dacă acestea sunt necesare în forma lor originală. De exemplu, expresia „jpe\+g” se potrivește doar cu un șir, „jpe+g”.
^ Caracterul ^ marchează începutul unei linii.
$ Simbolul $ marchează sfârșitul liniei.
! Simbol al negației.
. Simbol. reprezintă orice caracter (cu excepția caracterului de sfârșit de linie).
.* Înlocuiește absolut orice set de caractere
".*" Găsește toate subșirurile între ghilimele
| Simbol | denotă o alternativă. De exemplu, expresiile „A|B” și „(ABC|DEF)” înseamnă „A sau B” și, respectiv, „ABC sau DEF”.
() Parantezele () sunt folosite pentru a separa grupuri de caractere.
[...] Parantezele pătrate sunt folosite pentru a enumera caracterele valide. De exemplu, expresia „” este echivalentă cu expresia „a|b|c”, dar opțiunea cu paranteze drepte este de obicei mai rapidă. Puteți folosi intervale în paranteze: de exemplu, expresia „” este echivalentă cu expresia „”.
[^...] Clasa de caractere inversată. Dacă personajele sunt înăuntru paranteze pătrateîncepe cu caracterul ^, aceasta înseamnă orice caracter, cu excepția celor enumerate în paranteze. De exemplu, expresia „[^0-9]+” înseamnă un șir de caractere, cu excepția numerelor.
[...]* De exemplu, * - comanda va găsi caractere consecutive dintr-un set dat. [^abc]* - exact invers.
\w Literă, număr sau liniuță de subliniere _.
\d Înlocuiește orice număr.
\D Înlocuiește orice caracter, dar nu un număr.
Înlocuiește orice număr.
Orice literă de la a la z (toate set latin caractere) cu litere mici.
Orice literă de la A la Z cu majuscule.
Orice literă de la a la Z în orice caz.
- aceeași.
Plus. Orice lucru după simbolul „#” este considerat un comentariu. Permite accesul de la un anumit ip:
ordinul permite refuzul
nega de la toti<ваш ip>permite de la ÎN, <ваш ip> în acest caz, reprezintă.
adresa specifica
ordinul permite refuzul
De exemplu: comanda permite refuzul

permite de la 192.126.12.199 Permite accesul de la un anumit ip:
ordinul permite refuzul
Interziceți accesul de la o anumită ip:<ваш ip>nega de la <ваш ip> Utilizare

În funcție de ordinea în care sunt specificate directivele, logica de funcționare a serverului se schimbă. Dacă Deny,Allow, atunci accesul este interzis de la toate IP-urile, cu excepția celor specificate, dacă Allow,Deny, accesul este permis de la toate IP-urile, cu excepția celor specificate. Urmează secțiunile de descriere pentru acces și interzicere. Cuvânt cheie toateînseamnă de la toată lumea IP

De exemplu, vrem să refuzăm (blochăm) accesul de la IP 81.222.144.12 și 81.222.144.20 și permiteți tuturor celorlalți cărora trebuie să îi adăugăm .htaccess următorul cod:

Comanda Permite, Respinge
Permite de la toți
Refuza de la 81.222.144.12, 81.222.144.20

Pentru situația inversă când vrem să refuzăm accesul tuturor IP pe lângă 81.222.144.12 și 81.222.144.20 trebuie să adăugăm la .htaccess următorul cod:

Comanda refuza, permite
Negați de la toți
Permite de la 81.222.144.12, 81.222.144.20

Pentru a permite doar anumite gazde sau grupuri de gazde să acceseze serverul, gazda poate fi specificată în oricare dintre următoarele formate:

  • pentru un nume de domeniu (sau o parte a acestuia): Permite de la apache.org
    Permiteți din .net example.edu
  • pentru adresa ip: Permite de la 10.1.2.3
    Permite de la 192.168.1.104 192.168.1.205
  • pentru o parte a adresei ip:
    Permite de la 10.1
    Permite de la 10 172.20 192.168.2
  • pentru perechea rețea/mască: Permite de la 10.1.0.0/255.255.0.0
  • pentru specificațiile de rețea/nnn CIDR:
    Permite de la 10.1.0.0/16

Interziceți un grup de fișiere prin mască:
comanda permite, refuza
ordinul permite refuzul
Determină accesul la un fișier prin extensia acestuia.
De exemplu, interzicerea accesului la fișierele cu extensii „inc” pentru vizitatorii web:

comanda permite, refuza
ordinul permite refuzul

ÎN în acest exemplu Serverul web Apache însuși poate accesa fișiere cu astfel de extensii.

Ban on fisier specific:
Puteți bloca un anumit fișier după numele și extensia acestuia.
comanda permite, refuza
ordinul permite refuzul
În acest exemplu, accesul la fișierul config.inc.php este interzis.

Parola director: AuthName „Zona privată”
AuthType Basic
necesită utilizator valid
Valoarea AuthName va fi afișată vizitatorului și poate fi folosită pentru a clarifica solicitarea de autorizare. Valoarea AuthUserFile indică locația în care este stocat fișierul cu parolele pentru accesarea acestui director. Acest fișier este creat utilitate specială htpasswd.exe.

De exemplu, în directorul pe care îl protejăm cu o parolă, creăm următorul .htaccess: AuthName „Numai pentru utilizatorii înregistrați”
AuthType Basic
AuthUserFile /pub/site.ru/.htpasswd
necesită utilizator valid
În acest exemplu, când un vizitator solicită un director, va citi expresia „Numai pentru utilizatorii înregistrați” fișierul cu parolele de acces ar trebui să fie în directorul /pub/site.ru/ și numit.htapasswd. Directorul este specificat de la rădăcina serverului dacă specificați directorul incorect, Apache nu va putea citi fișierul .htpasswd și nimeni nu va avea acces la acest director.

Parola pentru un singur fișier:Mar, 09 februarie 2010 15:44:59 GMT+0300
Similar cu introducerea unei parole într-un întreg director, puteți pune o parolă pentru un singur fișier.
Un exemplu de setare a unei parole pentru fișierul private.zip:
AuthName „Zona utilizatorilor”
AuthType Basic
AuthUserFile /pub/home/your_login/.htpasswd

Parola pentru un grup de fișiere:
La fel, folosind , puteți seta parole pe baza măștilor de fișiere.
Un exemplu de setare a unei parole pentru accesul la toate fișierele cu extensia „sql”:

AuthName „Zona utilizatorilor”
AuthType Basic
AuthUserFile /pub/home/your_login/.htpasswd

Este inclus suport complet pentru directivele .htaccess...

Reînnoiri domenii 199-00 RUR

Acest material este unul dintre cele mai importante, așa că recomand să-i acordați o atenție deosebită.

ÎN expresie regulată poți folosi orice caractere tipăriteși un spațiu, dar unele personaje au o semnificație specială:

  • Parantezele () sunt folosite pentru a separa grupuri de caractere.

    Caracterul ^ marchează începutul unei linii.

    Simbolul $ marchează sfârșitul liniei.

    Simbol. reprezintă orice personaj.

    Simbol | denotă o alternativă. De exemplu, expresiile „A|B” și „(ABC|DEF)” înseamnă „A sau B” și, respectiv, „ABC sau DEF”.

    Simbol? este plasat după un caracter (sau un grup de caractere), care poate fi prezent sau nu. De exemplu, expresia „jpe?g” se va potrivi atât cu șirul „jpg”, cât și cu șirul „jpeg”. Un exemplu de expresie cu un grup de caractere: „super-(puper-)?site”.

    Caracterul * este plasat după un caracter (sau un grup de caractere) care poate fi absent sau poate prezenta un număr nelimitat de ori la rând. De exemplu, expresia „jpe*g” se potrivește cu șirurile „jpg”, „jpeg” și „jpeeeeeeg”.

    Caracterul + acționează similar caracterului *, singura diferență fiind că caracterul care îl precede trebuie să fie prezent cel puțin o dată. De exemplu, expresia „jpe+g” se potrivește cu șirurile „jpeg” și „jpeeeeg”, dar nu „jpg”.

    Parantezele pătrate sunt folosite pentru a enumera caracterele valide. De exemplu, expresia „” este echivalentă cu expresia „a|b|c”, dar opțiunea cu paranteze drepte este de obicei mai rapidă. Puteți folosi intervale în paranteze: de exemplu, expresia „” este echivalentă cu expresia „”. Dacă caracterele din parantezele pătrate încep cu un ^, înseamnă orice alt caracter decât cele enumerate în paranteze. De exemplu, expresia „[^0-9]+” înseamnă un șir de caractere, cu excepția numerelor.

    Simbolul \ este plasat înaintea caracterelor speciale dacă acestea sunt necesare în forma lor originală. De exemplu, expresia „jpe\+g” se potrivește doar cu un șir, „jpe+g”.

    (3,9) - acolade indică un interval al numărului de caractere, în acest caz sunt permise de la 3 la 9 caractere, lungimea șirului de caractere trebuie să fie egală sau mai mare de 3 egală sau mai mică de 9 caractere . Folosit în principal. De exemplu, verificarea șirului Solicitare HTTP trimis de browser către server pentru a determina dacă conținutul său corespunde unui anumit model:
    ♳ RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/
    ♴ să presupunem că am solicitat o pagină de index pe serverul %(THE_REQUEST) = „GET /index.html HTTP/1.1”
    ♵ în acest caz citim linia sursă care conține acolade astfel: „beginning_of_received_dataGETspace/index.phpspaceHTTP/”
    ♶ adică Ar putea fi „GET”, sau ar putea fi „POST”, ar putea fi alte valori... doar simboluri, în funcție de ce și cum solicităm fișierul index.php de pe server.

    Orice lucru după simbolul „#” este considerat un comentariu.

Repet încă o dată că, pentru o mai bună înțelegere cu succes a descrierii, exemple de .htaccess și configurația acestuia, aceste informații pur si simplu necesar!!!

Domenii lansate recent cu PR și TIC:

Serviciul http://reg.ru - cel mai mare registrator de găzduire și domenii vă permite să aplicați pentru înregistrarea unui nume de domeniu care a fost lansat recent de administratorul anterior. Domeniile lansate au adesea indicatori TIC și PR ridicati și pot fi interesante pentru achiziție.

Domenii lansate.RU cu TIC:
Domenii premium disponibile:

Volumul informațiilor: 5805 octeți
  • Serghei Savenkov

    un fel de recenzie „scurtă”... de parcă s-ar grăbi undeva