Directiva RewriteRule – Definirea regulilor de transformare și redirecționare URL în Apache HTTP Server

Transformă URL-ul cerut pe baza unei expresii regulate PCRE și îl redirecționează intern sau extern.

Sintaxă
RewriteRule tipar_regex substitutie [indicatori]
RewriteRule ^articol/([0-9]+)$ articol.php?id=$1 [L,QSA]

Ce face Directiva RewriteRule - Definirea regulilor de transformare și redirecționare URL

Directiva RewriteRule este nucleul funcționalității `mod_rewrite`.

Funcționează în 3 pași: compară calea cerută cu `tipar_regex`; dacă se potrivește, înlocuiește calea cu `substitutie`; aplică opțiunile definite între paranteze drepte `[indicatori]`.

Substituția poate fi internă (transparentă pentru utilizator, servind alt fișier fără a schimba adresa din browser) sau externă (redirecționare HTTP 301/302 vizibilă în browser).

Exemple

Exemplul 1: Rescrierea unui URL prietenos (clean URL) către un script PHP intern

Transformă /produs/42 în produs.php?id=42 în mod invizibil.

RewriteEngine On
RewriteRule ^produs/([0-9]+)/?$ produs.php?id=$1 [L,QSA]

Ieșire în terminal

Cererile către /produs/42 vor rula intern scriptul produs.php cu parametrul id=42.

Greșeli frecvente

  • Includerea barei oblice de început în fișiere .htaccess (ex: ‘^/produs’ în loc de ‘^produs’); în .htaccess calea relativă nu începe cu ‘/’.

Comenzi înrudite