使用されているブラウザ(Chrome、Firefox、またはIE)に基づいてWebサイト要求をリダイレクトする


以前の記事(mod_rewriteを使用して内部リダイレクトを実行する方法)で約束したように、この投稿では、ユーザーのブラウザー基準に基づいてApachemod_rewriteリダイレクト要求を使用してカスタムWebサイトコンテンツを表示する方法を説明します。

理論的には、最新のブラウザはすべてコンテンツを同等に解釈する必要があります。ただし、最新の機能を他よりも速く実装するものもあります。特定のブラウザを使用して表示したときに壊れない完全に機能するWebサイトを作成するため。残念ながら、これには別のディレクトリまたはページへのリダイレクトが必要になります。

次の書き換えルールは、使用されているブラウザ(Google Chrome、Mozilla Firefox、またはInternet Explorer)に応じて、tecmint.htmlのリクエストをtecmint-chrome.html、tecmint-firefox.html、またはtecmint-ie.htmlにリダイレクトします。

これを行うには、 HTTP_USER_AGENT 環境変数を使用して、ユーザーエージェント文字列に基づいてブラウザを識別します。ここでは、 RewriteCond ディレクティブを紹介します。これにより、リダイレクトを実行するために満たす必要のある条件を指定できます。

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]

ターゲットページtecmint.htmlが必ずしも存在する必要はないことに注意してください。まず、次の内容でtecmint-firefox.html、tecmint-chrome.html、tecmint-ie.htmlを作成しましょう。

<!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>

さまざまなブラウザを使用してtecmint.htmlを参照した結果が表示されます。

ご覧のとおり、tecmint.htmlのリクエストは、使用されているブラウザに応じてリダイレクトされました。

この記事では、ユーザーのブラウザに基づいてリダイレクトリクエストを実行する方法について説明しました。最後に、mod_rewriteのチートシートを確認し、今後の参照用にApacheドキュメントのリダイレクトおよび再マッピングガイドをブックマークすることを強くお勧めします。

いつものように、この記事について質問やフィードバックがある場合は、以下のコメントフォームを使用してください。返信お待ちしています!