Ricerca nel sito web

Reindirizzare le richieste del sito web in base al browser utilizzato (Chrome, Firefox o IE)


Come promesso nel nostro articolo precedente (Come eseguire il reindirizzamento interno con mod_rewrite), in questo post spiegheremo come visualizzare il contenuto di un sito Web personalizzato utilizzando le richieste di reindirizzamento Apache mod_rewrite in base ai criteri del browser dell'utente.

In teoria, tutti i browser moderni dovrebbero interpretare i contenuti allo stesso modo. Tuttavia, alcuni implementano le funzionalità più recenti più velocemente di altri. Per avere un sito web perfettamente funzionante che non si rompa quando viene visualizzato utilizzando un determinato browser. Sfortunatamente, ciò richiederà un reindirizzamento a una directory o pagina diversa.

Lettura consigliata: 5 suggerimenti per migliorare le prestazioni del tuo server Web Apache

Le seguenti regole di riscrittura reindirizzeranno le richieste per tecmint.html a tecmint-chrome.html, tecmint-firefox.html o tecmint -ie.html a seconda del browser utilizzato (Google Chrome, Mozilla Firefox o Internet Explorer).

Per fare ciò, la variabile d'ambiente HTTP_USER_AGENT viene utilizzata per identificare il browser in base alla stringa dello user-agent. Qui introduciamo la direttiva RewriteCond, che ci consente di specificare una condizione che deve essere soddisfatta affinché il reindirizzamento abbia luogo.

RewriteCond "%{HTTP_USER_AGENT}"  ".*Firefox.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-firefox.html" [R,L]
RewriteCond "%{HTTP_USER_AGENT}"  ".*Chrome.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-chrome.html" [R,L]
RewriteCond "%{HTTP_USER_AGENT}"  ".*Trident.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-ie.html" [R,L]

Tieni presente che la pagina di destinazione tecmint.html non deve necessariamente esistere. Prima di tutto, creiamo tecmint-firefox.html, tecmint-chrome.html e tecmint-ie.html con i seguenti contenuti.

tecmint-firefox.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Firefox!</h3>
  </body>
</html>
tecmint-chrome.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Chrome!</h3>
  </body>
</html>
tecmint-ie.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Internet Explorer!</h3>
  </body>
</html>

vedremo il risultato della navigazione su tecmint.html utilizzando diversi browser:

Come puoi vedere, le richieste per tecmint.html venivano reindirizzate di conseguenza a seconda del browser utilizzato.

In questo articolo abbiamo discusso come eseguire richieste di reindirizzamento in base al browser dell'utente. Per concludere, ti consiglio vivamente di dare un'occhiata al cheat sheet mod_rewrite e di aggiungere ai segnalibri la guida di reindirizzamento e rimappatura nella documentazione di Apache per riferimento futuro.

Come sempre, non esitate a utilizzare il modulo di commento qui sotto se avete domande o feedback su questo articolo. Restiamo in attesa della vostra risposta!