Directiva RewriteCond – Condiții logice prealabile pentru RewriteRule în Apache HTTP Server

Aplică o regulă RewriteRule doar dacă una sau mai multe condiții pe variabile de server sunt îndeplinite.

Sintaxă
RewriteCond %{VARIABILA_TEST} tipar_conditie [indicatori]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

Ce face Directiva RewriteCond - Condiții logice prealabile pentru RewriteRule

Directiva RewriteCond funcționează ca o clauză `if` atașată regulii `RewriteRule` care o urmează imediat.

Permite inspectarea variabilelor interne precum numele gazdei (`%{HTTP_HOST}`), calea fișierului (`%{REQUEST_FILENAME}`), adresa IP (`%{REMOTE_ADDR}`) sau antetele cererii.

Testele speciale includ `!-f` (resursa solicitată NU este un fișier existent pe disc) și `!-d` (resursa solicitată NU este un director).

Exemple

Exemplul 1: Regula standard de Front-Controller (WordPress / Laravel)

Dacă fișierul sau folderul nu există fizic pe disc, trimite cererea către index.php.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]

Ieșire în terminal

Toate URL-urile dinamice sunt rutate către index.php pentru procesare.

Greșeli frecvente

  • Plasarea directivei RewriteCond după RewriteRule în loc de înainte; RewriteCond se aplică ÎNTOTDEAUNA exclusiv pe prima regulă RewriteRule care o succedează.

Comenzi înrudite