Apache offre una varietà di configurazioni grazie all’uso di Rewrite. Se avere creato un sito web, sicuramente avrete fatto ricorso a regole di rewrite.
Ad esempio, se volessimo che richiamando l’url /logout venga passato il parametro op=logout al file index.php basterebbe creare la seguente regola di rewrite:
RewriteCond %{REQUEST_URI} /logout
RewriteRule logout$ index.php?op=logout [L]
Sempre tramite Apache è possibile impostare una serie di header, ad esempio il cache-control per la gestione della durata della cache delle varie risorse. Ipotizziamo di voler indicare ad apache di rispondere alle richieste con useragent googlebot o bingbot dove il referer è google che la cache non esiste, è possibile farlo con queste righe:
RewriteCond %{HTTP_USER_AGENT} !(googlebot|bingbot) [NC]
RewriteCond %{HTTP_REFERER} google [NC]
RewriteRule ^.*$ - [ENV=LONGCACHE:true]
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" env=LONGCACHE
Header set Pragma "no-cache" env=LONGCACHE
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" env=LONGCACHE
Abbiamo così creato un header condizionale.
Se usate una versione di apache>2.4.10 e dovete impostare un solo header, è possibile anche fare tutto con una riga, usando un ap_expr:
Header set Pragma "no-cache" "expr=%{HTTP_USER_AGENT}=~/(googlebot|bingbot)/i && %{HTTP_REFERER}=~/google/i"
Se ad esempio volessi disabilitare la direttiva Strict-Transport-Security nel caso in cui venga richiamato il dominio senza il prefisso www, potrei usare questa direttiva:
Header always unset Strict-Transport-Security "expr=! %{HTTP_HOST} =~ /^www./"
Oppure una versione leggermente più estesa, utile nel caso si vogliano impostare più header:
<If "! %{HTTP_HOST} =~ /^www./>
Header always unset Strict-Transport-Security
</If>
enjoy!
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta