mod_rewrite のRewriteCond ディレクティブを使用して、報告されたユーザー エージェントの名前に対してテストできます。xy ディレクトリに配置された .htaccess ファイルでは、次のようになります。
RewriteCond %{HTTP_USER_AGENT} Opera
RewriteRule ^abc.html$ http://example.com/xy/opera.html [R=301]
これにより、ユーザー エージェント文字列のどこかに Opera が含まれるブラウザーが、opera.html に永続的にリダイレクトされます。useragentstring.comで、ユーザー エージェントが自分自身を識別する方法の適切なリストを見つけることができます。多くのユーザー エージェント文字列が実際には "Mozilla" で始まることに気付くでしょう (いくつかの邪悪な歴史的理由による) が、文字列にブラウザーの名前 (IE は "MSIE") が含まれているかどうかをテストするだけで十分です。
問題は、HTTP_USER_AGENT
文字列がブラウザによって報告され、ブラウザが必要なものをほとんど報告する可能性があることです。Opera には、自分自身を IE または FF に見せかける組み込みオプションもあります。一般に、ユーザー エージェント文字列に基づくブラウザー スニッフィングが最終的に見逃される可能性が高く、ユーザーはイライラします。自動リダイレクトをオーバーライドする方法をユーザーに残すことを強くお勧めします。
したがって、次のようなものが最初のアプローチとして機能する可能性があります。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} Opera
RewriteRule ^abcd.html$ opera.html [NC,L]
RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteRule ^abcd.html$ ie.html [NC,L]
RewriteCond %{HTTP_USER_AGENT} Chrome
RewriteRule ^abcd.html$ chrome.html [NC,L]
RewriteCond %{HTTP_USER_AGENT} Safari
RewriteRule ^abcd.html$ safari.html [NC,L]
RewriteCond %{HTTP_USER_AGENT} Firefox
RewriteRule ^abcd.html$ firefox.html [NC,L]
RewriteRule ^abcd.html$ default.html [L]
L フラグは、そのルールがそのパスで最後に実行されることを確認するため、ブラウザが Firefox、Safari、MSIE、および Opera を含む文字列で自身を報告した場合、一致する最初のルール (この場合は Opera) が決定されます。ランディングページ。このバージョンは、ソフト リダイレクトを実行します (ブラウザのアドレス バーは変更されません)。ハードな R=301 リダイレクトが必要な場合は、ランディング ページの URL 全体を綴るようにしてください。RewriteRule ^abcd.html$ http://example.com/xy/opera.html [NC,L,R=301]