使用.htaccess进行移动重定向,但仅限于根域

时间:2012-08-08 19:20:34

标签: .htaccess

我从ThemeForest.net上开发了一个移动网站主题,他建议我在这里与社区讨论.htaccess。我目前使用.htaccess将移动流量重定向到我的移动网站,效果很好。但是我发现,如果有触摸设备的人尝试通过直接键入URL或外部链接来访问我的服务器上的页面,它会将用户重定向到我的移动站点的索引页面

一个例子;我使用SlideShowPro Director为房地产经纪人创建了很多幻灯片。这些幻灯片嵌入在我创建的HTML页面中。我将URL发送给我的房地产经纪人,以便他们可以访问幻灯片,或将URL链接到另一个站点。如果使用触摸设备的用户遵循该链接,.htaccess文件将检测设备并将其重定向到移动索引页面,而不是幻灯片页面。显然,配置文件的方式有些棘手。该文件的代码如下:

RewriteEngine on
RewriteBase /

# Check if this is the noredirect query string
RewriteCond %{QUERY_STRING} (^|&)m=0(&|$)
# Set a cookie, and skip the next rule
RewriteRule ^ - [CO=mredir:0:www.mainevideotours.com]

RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP:Profile}       !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC]
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]

# Check if we're not already on the mobile site
RewriteCond %{HTTP_HOST}          !^m\.
# Can not read and write cookie in same request, must duplicate condition
RewriteCond %{QUERY_STRING} !(^|&)m=0(&|$) 

# Check to make sure we haven't set the cookie before
RewriteCond %{HTTP_COOKIE}        !^.*mredir=0.*$ [NC]

# Now redirect to the mobile site
RewriteRule ^ http://m.mainevideotours.com [R,L]

任何帮助都会非常感激!! -Keith

1 个答案:

答案 0 :(得分:0)

  

如果有人尝试访问根域索引文件www.mainevideotours.com/index.html,而不是我网域上的任何其他网页,我希望它只能重定向

阿。您似乎需要将规则(最后一行)更改为:

RewriteRule ^(index.html)?$ http://m.mainevideotours.com [R,L]

这应涵盖//index.html