移动重定向问题

时间:2014-12-10 17:12:49

标签: .htaccess redirect mobile

所以我一直在尝试为我网站的一部分(服务区域)创建移动重定向。构建网站的方式要求我使用htaccess文件来完成此任务。我有代码,并且出于某种原因,来自Google AdWords或地图列表的访问者都会转发到移动网站,无论他们是否在移动设备/桌面设备上。这是我遇到问题的唯一情况。 我的想法是从移动网站为非移动访问者创建一个重定向回标准网站。这会创建一个循环还是会实际起作用?此外,代码如何工作,如果不是移动,则指定重定向到特定页面。这就是我所拥有的:

RewriteCond %{HTTP_ACCEPT} !text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie- [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android [NC]
RewriteRule ^mobile-homepage$ http://www.example.com/homepage [L,R=302]

1 个答案:

答案 0 :(得分:0)

您希望摆脱条件中的所有OR标记。你不想要“不是A”或“不是B”(因为那时只有B会使条件成立),你想要“不是A” AND “NOt B”

RewriteCond %{HTTP_ACCEPT} !text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml [NC]
RewriteCond %{HTTP_USER_AGENT} !sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera [NC]
RewriteCond %{HTTP_USER_AGENT} !mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox [NC]
RewriteCond %{HTTP_USER_AGENT} !blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie- [NC]
RewriteCond %{HTTP_USER_AGENT} !portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc [NC]
RewriteCond %{HTTP_USER_AGENT} !smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android [NC]
RewriteRule ^mobile-homepage$ http://www.example.com/homepage [L,R=302]

唯一可疑的是第一个条件。没有办法逻辑地将OR或其他所有内容组合在一起。