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
Directiva RewriteRule - Definirea regulilor de transformare și redirecționare URL: Transformă URL-ul cerut pe baza unei expresii regulate PCRE și îl redirecționează intern sau extern.Indicatorii de rescriere [L], [R=301], [NC], [QSA] - Controlul execuției regulilor: Flag-uri plasate la finalul unei reguli RewriteRule pentru a controla oprirea, redirecționarea sau păstrarea parametrilor.