0

I am currently using detection .htaccess file from detectmobilebrowsers.com to detect most mobile devices but it doesn´t work on webos browsers.

Code I'm using:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge\ |maemo|midp|mmp|mobile.+firefox|netfront|opera\ m(ob|in)i|palm(\ os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows\ (ce|phone)|xda|xiino [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a\ wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r\ |s\ )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1\ u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(\ i|ip)|hs\-c|ht(c(\-|\ |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(\ |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(\ |\/)|klon|kpt\ |kwc\-|kyo(c|k)|le(no|xi)|lg(\ g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-|\ |o|v)|zz)|mt(50|p1|v\ )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v\ )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|\ )|webc|whit|wi(g\ |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-) [NC]
RewriteRule ^$ http://m.website.com [R,L]
anubhava
  • 761,203
  • 64
  • 569
  • 643
xzibit
  • 3,197
  • 2
  • 17
  • 19

2 Answers2

0

You need to add the condition:

RewriteCond %{HTTP_USER_AGENT} (webOS/[12]|wOSBrowser) [NC,OR]

to the top of your list of conditions.

Jon Lin
  • 142,182
  • 29
  • 220
  • 220
  • Thanks Jon for getting back to me. I have added the condition as you instructed #RewriteCond %{HTTP_USER_AGENT} (webOS/[12]|wOSBrowser) [NC|OR] but it showed me an error on the browser showing: 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. I replaced the [NC|OR] for [NC,OR] and it loaded the page without error on desktop browsers but on the webos tablet it does not display the mobile site version as expected. What do you think may be happening? – xzibit Oct 09 '13 at 18:27
  • @user2811543 Sorry, typo. `[NC|OR]` should be `[NC,OR]` – Jon Lin Oct 09 '13 at 18:28
  • Yes, I already corrected it with [NC,OR] and when I try to access the website on the WebOS Device, it says: Cannot load requested url. – xzibit Oct 09 '13 at 18:47
  • @user2811543 Go [here](http://www.whatsmyuseragent.com/) with your webos device and see what your user-agent is – Jon Lin Oct 09 '13 at 19:01
  • I did not see any user-agent for the webos device that I am testing right now but I found this on https://developer.palm.com/content/resources/develop/developing_web_content_for_webos.html: Mozilla/5.0 (webOS/1.4.0; U; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.1 Mozilla/5.0 (webOS/1.4.0; U; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pixi/1.1 How do I interpret this to add it in the list of conditions? – xzibit Oct 09 '13 at 19:11
  • @user2811543 This bit: "Mozilla/5.0 (**webOS**/1.4.0; U; en-US)" will already match what I put in my answer, e.g. `(webOS/[12]|wOSBrowser)` – Jon Lin Oct 09 '13 at 19:32
  • @user2811543 it's because of this: "I did not see any user-agent for the webos device that I am testing right now". If that page said there was no user-agent, no amount of matching will help. Your device doesn't report a user-agent, which means there's no way the server will know that your device is a mobile device. Nothing you can do about it. – Jon Lin Oct 09 '13 at 20:08
  • Thank you for your follow up on this Jon. Yes, I guess you are absolutely correct. Take a look at this article I found on the HP Touchpad using webOS 3.0.5 which is the device I am testing with. http://www.webosnation.com/override-your-touchpads-browser-user-agent – xzibit Oct 09 '13 at 20:24
0

I think besides webOS user-agent missing another problem is in your rule:

RewriteRule ^$ http://m.website.com [R,L]

Which will only redirect your home page. It should be replaced with:

RewriteRule ^ http://m.website.com [R,L]

To make this mobile redirection only dependent on user agent strings.

anubhava
  • 761,203
  • 64
  • 569
  • 643
  • Hi Anubhava, great to hear from you... I went ahead and added the user-agent and also revomed the dollar sign from the rule but unfortunately is not working yet... I just read this article about webOS 3.0.5 and I am disappointed with it since it says you need to use a User Agent Override patch to make it work on this HP Touch Device. – xzibit Oct 09 '13 at 20:18