Solución:
Puede usar la directiva RewriteCond de mod_rewrite para probar con el nombre informado del agente de usuario. En un archivo .htaccess ubicado en su directorio xy, se vería así:
RewriteCond %{HTTP_USER_AGENT} Opera
RewriteRule ^abc.html$ http://example.com/xy/opera.html [R=301]
Esto redirigirá permanentemente los navegadores que tienen Opera en algún lugar de su cadena de agente de usuario a opera.html. Puede encontrar una lista decente de cómo los agentes de usuario se identifican a sí mismos en useragentstring.com. Notará que muchas cadenas de agentes de usuario en realidad comienzan con “Mozilla” (debido a algunas malas razones históricas), pero simplemente probar para ver si la cadena contiene el nombre del navegador (IE es “MSIE”) debería ser suficiente.
El problema es que HTTP_USER_AGENT
El navegador informa la cadena, y es posible que el navegador informe prácticamente cualquier cosa que desee. Opera incluso tiene una opción incorporada para que se haga pasar por IE o FF. En general, existe una buena posibilidad de que el rastreo del navegador basado en la cadena del agente de usuario finalmente se pierda, y luego el usuario se molestará. Le sugiero encarecidamente que deje al usuario alguna forma de anular la redirección automática.
Entonces, algo como esto podría funcionar como un primer enfoque:
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]
La bandera L asegura que esa regla sea la última en ejecutarse en esa pasada, por lo que si un navegador se reporta a sí mismo con una cadena que contiene Firefox, Safari, MSIE y Opera, entonces la primera regla que coincida (en este caso Opera) determinará la página de destino. Esta versión realiza una redirección suave (la barra de direcciones del navegador no cambiará). Si desea una redirección rígida R = 301, asegúrese de deletrear la URL completa de la página de destino, es decir RewriteRule ^abcd.html$ http://example.com/xy/opera.html [NC,L,R=301]