Forespørgsler om omdirigeringswebsteder baseret på den anvendte browser (Chrome, Firefox eller IE)


Som lovet i vores tidligere artikel (Sådan udføres intern omdirigering med mod_rewrite), i dette indlæg vil vi forklare, hvordan man viser et brugerdefineret webstedsindhold ved hjælp af Apache mod_rewrite-omdirigeringsanmodninger baseret på brugerens browserkriterier.

I teorien skal alle moderne browsere fortolke indholdet ens. Imidlertid implementerer nogle de nyeste funktioner hurtigere end andre. For at have et fuldt funktionelt websted, der ikke går i stykker, når det vises ved hjælp af en bestemt browser. Desværre kræver dette en omdirigering til en anden mappe eller side.

Følgende omskrivningsregler omdirigerer anmodninger om tecmint.html til tecmint-chrome.html, tecmint-firefox.html eller tecmint-ie.html afhængigt af den anvendte browser (Google Chrome, Mozilla Firefox eller Internet Explorer).

For at gøre dette bruges miljøvariablen HTTP_USER_AGENT til at identificere browseren baseret på brugeragentstrengen. Her introducerer vi RewriteCond -direktivet, som giver os mulighed for at specificere en betingelse, der skal være opfyldt for at omdirigering skal finde sted.

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]

Bemærk, at målsiden tecmint.html ikke nødvendigvis behøver at eksistere. Først og fremmest, lad os oprette tecmint-firefox.html, tecmint-chrome.html og tecmint-ie.html med følgende indhold.

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

vi ser resultatet af browsing til tecmint.html ved hjælp af forskellige browsere:

Som du kan se, blev anmodninger om tecmint.html omdirigeret i overensstemmelse hermed afhængigt af den anvendte browser.

I denne artikel har vi diskuteret, hvordan man omdirigerer anmodninger baseret på brugerens browser. For at afslutte, vil jeg varmt anbefale, at du kigger på omlægningsguiden i Apache-dokumenterne til fremtidig reference.

Som altid er du velkommen til at bruge kommentarformularen nedenfor, hvis du har spørgsmål eller feedback om denne artikel. Vi ser frem til at høre fra dig!