mod_rewrite può modificare aspetti della gestione delle richieste senza alterare l'URL, ad esempio l'impostazione delle variabili d'ambiente, l'impostazione dei cookie, ecc. Questo è incredibilmente utile.
Imposta in modo condizionale una variabile d'ambiente:
RewriteCond %{HTTP_COOKIE} myCookie=(a|b) [NC]
RewriteRule .* - [E=MY_ENV_VAR:%b]
Restituisce una risposta 503:
RewriteRule
il [R]
flag di può assumere un valore diverso da 3xx e restituire una risposta senza reindirizzamento, ad esempio per tempi di inattività / manutenzione gestiti:
RewriteRule .* - [R=503,L]
restituirà una risposta 503 (non un reindirizzamento di per sé).
Inoltre, mod_rewrite può agire come un'interfaccia super potente per mod_proxy, quindi puoi farlo invece di scrivere ProxyPass
direttive:
RewriteRule ^/(.*)$ balancer://cluster%{REQUEST_URI} [P,QSA,L]
Opinione: l'utilizzo di RewriteRule
ses RewriteCond
per instradare le richieste a diverse applicazioni o bilanciatori del carico in base a qualsiasi aspetto immaginabile della richiesta è semplicemente immensamente potente. Il controllo delle richieste nel loro percorso verso il backend e la possibilità di modificare le risposte durante il loro ritorno, rende mod_rewrite il luogo ideale per centralizzare tutta la configurazione relativa al routing.
Prenditi il tempo per impararlo, ne vale la pena! :)