Ce face Directiva RewriteCond
Directiva RewriteCond specifică o condiție de testare care se aplică regulii RewriteRule imediat următoare. O regulă se execută doar dacă toate condițiile asociate sunt adevărate.
Permite inspectarea variabilelor interne precum %{HTTPS}, %{HTTP_HOST}, %{HTTP_USER_AGENT}, %{REQUEST_URI} sau atribute din sistemul de fișiere (!-f = nu este fișier existent, !-d = nu este director existent).
OpenLiteSpeed evaluează aceste expresii regulare cu performanțe foarte mari datorită motorului PCRE integrat.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
%{VARIABILA} |
Variabila de server testată (ex: %{HTTPS}, %{HTTP_HOST}). |
CondPattern |
Tiparul regex sau operatorul de test (ex: !-f, !=on, ^www\.). |
[NC] |
Case-insensitive (ignoră diferențele între majuscule și minuscule). |
[OR] |
Operator logic SAU (leagă condiția curentă de următoarea). |
Ce returnează
Valoare booleană (adevărat/fals) ce decide dacă se continuă execuția RewriteRule.
Exemple
Exemplul 1: Blocarea cererilor venite de la un user-agent malițios
Returnează codul 403 Forbidden dacă vizitatorul folosește un scanner periculos.
RewriteCond %{HTTP_USER_AGENT} (sqlmap|nikto|wpscan) [NC]
RewriteRule .* - [F,L]
Greșeli frecvente
- Omiterea caracterului de scăpare (backslash) înaintea punctului în expresii regulare (de exemplu scrierea ‘www.exemplu.ro’ în loc de ‘www\.exemplu\.ro’).
- Confundarea variabilei %{REQUEST_URI} cu %{QUERY_STRING} (parametrii după semnul de întrebare nu se găsesc în REQUEST_URI).
Comenzi înrudite
Directiva rules (.htaccess): Permite scrierea directă a regulilor de rescriere în fișierul de configurare vhost.conf.Indicatori RewriteRule ([L], [R], [QSA]): Modifică comportamentul regulilor de rescriere (redirecționare 301, oprire execuție L, păstrare query string QSA).Forțare HTTPS prin rescriere: Regula optimizată pentru redirecționarea automată și permanentă a întregului trafic HTTP către HTTPS.