Directiva directivelor de revizuire

Directiva RewriteCond specifică condițiile pentru o regulă. Înainte de directiva RewriteRule, se află unul sau mai multe directive RewriteCond. Următoarea regulă de conversie este utilizată numai atunci când URI respectă termenii acestei directive și, de asemenea, termenii acestor directive adiționale.

Un șir comparabil care poate conține următoarele construcții suplimentare în plus față de textul simplu:

  • RewriteRule link-uri inverse. Acestea sunt feedback-urile din formular
(0 <= N<= 9) предоставляющие доступ к сгруппированным частям (в круглых скобках!) шаблона из соответствующей директивы RewriteRule (единственной, следующей сразу затекущим набором директив RewriteCond ).
  • RewriteCond link-uri inverse. Acestea sunt feedback-urile din formular (1 <= N<= 9) предоставляющие доступ ксгруппированным частям (в круглых скобках!) шаблона из соответствующей директивы RewriteCond втекущем наборе условий.
  • RewriteMap. Acestea sunt prelungirile Consultați documentația pentru RewriteMap pentru mai multe detalii.
  • Server variabile. Acestea sunt variabile ale formei

    unde NAME_OF_VARIABLE poate fi un șir din următoarea listă:

    compus cerere:

    HTTP _USER_AGENT
    HTTP _REFERER
    HTTP _COOKIE
    HTTP _FORWARDED
    HTTP _HOST
    HTTP _PROXY_CONNECTION
    HTTP _ACCEPT

    REMOTE_ADDR
    REMOTE_HOST
    REMOTE_USER
    REMOTE_IDENT
    REQUEST_METHOD
    SCRIPT_FILENAME
    PATH_INFO
    QUERY_STRING
    AUTH_TYPE

    DOCUMENT_ROOT
    SERVER_ADMIN
    SERVER_NAME
    SERVER_ADDR
    SERVER_PORT
    SERVER_PROTOCOL
    SERVER_SOFTWARE

    TIME_YEAR
    TIME_MON
    TIME_DAY
    TIME_HOUR
    TIME_MIN
    TIME_SEC
    TIME_WDAY
    TIME

    API _VERSION
    THE_REQUEST
    REQUEST_URI
    REQUEST_FILENAME
    IS_SUBREQ

    Aceste variabile corespund complet cu anteturile MIME ale HTTP menționate într-un mod similar. și variabilele serverului Apache sau câmpurile Unix struct tm. Cele mai multe dintre acestea sunt documentate în altă parte în manual sau în specificația CGI. Cei speciali pentru mod_rewrite includ:

    IS_SUBREQ Va conține text

    Condiția este un șablon de condiție, adică Orice expresie regulată aplicată la instanța curentă a comparatorului. și anume Comparatorul este privit ca să corespundă condiției.

    Amintiți-vă: Condiția este o expresie regulată compatibilă cu perl, cu unele adăugiri:

    1. Puteți prefixa șirul șablon cu un prefix! (semn de exclamare) pentru a indica faptul că modelul nu se potrivește.
    2. Există câteva opțiuni speciale. În locul șirurilor de expresii regulate regulat, puteți utiliza una dintre următoarele opțiuni:
      • <Условие (лексически меньше)
        Starea este considerată un șir simplu și este comparată lexic cu String comparabil. Adevărat dacă Comparatorul este mai lexic decât condiția.
      • > Starea (lexical mai mare)
        Starea este considerată un șir simplu și este comparată lexic cu String comparabil. Este adevărat dacă ComparString este mai lexic decât Condition.
      • = Condiție (lexical egal)
        Starea este considerată un șir simplu și este comparată lexic cu String comparabil. Într-adevăr, dacă ComparString este lexical egal cu Condition. și anume aceste două linii sunt exact identice (simbolul din simbol). Dacă condiția are forma "" (două inci succesiv), aceasta compară CompareString cu un șir gol.
      • -d (este un director)
        Metoda CompareString este considerată o cale, existența căii este verificată și faptul că această cale este un director.
      • -f (este un fișier obișnuit)
        CompareString este considerat a fi o cale, existența căii este verificată, deoarece această cale este un fișier obișnuit.
      • -s (este un fișier obișnuit cu o dimensiune diferită de zero)
        Comparatorul este considerat o cale, existența căii este verificată și faptul că această cale este un fișier obișnuit, a cărui mărime este mai mare decât zero.
      • -l (este un lizim-
        Stringul comparabil este considerat o cale, se verifică existența acestei căi și faptul că această cale este o legătură simbolică.
      • -F (verificarea existenței unui fișier printr-o subcâmplare)
        Acesta verifică, prin toate listele de control al accesului ale serverului care există în acest moment, dacă ComparLine este un fișier existent accesibil prin această cale. Acest test utilizează o subcotare internă, deci utilizați această opțiune cu prudență - aceasta afectează în mod negativ performanța serverului!
      • -U (verificați existența adresei URL printr-o subchetare)
        Acesta verifică, prin toate listele de control al accesului ale serverului care există în prezent, dacă ComparLine este o adresă URL existentă. accesibile pe această cale. Acest test utilizează o subcotare internă, deci utilizați această opțiune cu prudență - aceasta afectează în mod negativ performanța serverului!

    Toate aceste verificări pot fi, de asemenea, precedate de un prefix de exclamare ('!') Pentru a inversa valoarea lor.

  • În plus, puteți seta steaguri speciale pentru adăugarea condiției

    al treilea argument în directiva RewriteCond. Lista de steaguri a următorilor steaguri separate prin virgule:

    • nocase | NC (insensibil pentru caractere)
      Registrul nu are valoare, adică Nu există nici o diferență între "A-Z" și "a-z", ca în ComparisonString și Condition. Acest steguleț este eficient doar pentru comparațiile dintre Comparator și condiție. Nu funcționează atunci când verificați sistemul de fișiere și subcheile.
    • ORnext (sau următoarea condiție)
      Utilizați pentru a combina condițiile în regulile OR în loc de AND. Un exemplu tipic: fără acest steag, ar trebui să scrieți această condiție / regulă de trei ori.

    Pentru a afișa pagina principală a site-ului, în funcție de instalarea User-Agent: antetul solicitării, puteți utiliza următoarele directive:

    Interpretare: dacă aveți Netscape Navigator (care este identificat ca "Mozilla"), emiteți cea mai încărcată pagină, cu cadre, etc. Dacă aveți Lynx (un browser de text), veți da pagina cu cea mai mică încărcătură, fără imagini, mese etc. Dacă aveți alt browser, lansați o pagină standard.

    Articole similare