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

使用.htaccess进行移动重定向,但仅适用于根域,.htaccess,.htaccess,我从ThemeForest.net上开发的网站上购买了一个移动网站主题,他建议我在这里与社区讨论.htaccess。我目前使用.htaccess将移动流量重定向到我的移动站点,这非常有效。然而,我发现,如果有人使用触摸设备试图通过直接键入URL或通过外部链接访问我服务器上的页面,它会将用户重定向到我移动站点的索引页面 一个例子;我使用SlideShowPro Director为房地产经纪人制作了很多幻灯片。这些幻灯片嵌入到我创建的HTML页面中。我将URL发送给我的经纪人,以便他们可以访问幻灯片

我从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]
任何帮助都将不胜感激!! -基思

我希望只有当有人试图访问根域索引文件www.mainevideotours.com/index.html,而不是我域上的任何其他页面时,它才会重定向

啊。看起来您需要将规则(最后一行)更改为:


这应该包括
/
/index.html

您会遇到什么样的错误或意外行为?规则看起来很好,正如我提到的,该文件正在重定向我网站上任何页面的所有移动流量。我希望它仅在有人试图访问根域索引文件www.mainevideotours.com/index.html时重定向,而不是我域上的任何其他页面。问题是,例如,如果有人跟踪从另一个网站到我服务器上的幻灯片页面的链接,并且他们正在使用触摸设备,该文件检测到设备并将其重定向到移动索引页面,这样他们就永远不会到达他们试图访问的页面。有没有一种方法可以让我的链接不受.htaccess文件的影响?(www.example.com?m=0)让我试试看!谢谢你的快速回复!成功了!非常感谢你的帮助@Jon使用
[R=301,L]
不是更好吗?仅仅使用
R
会使其成为一个临时重定向(302),这对搜索引擎排名不利(请参阅中的第二条消息。@ToddRouty这是针对移动设备的重定向,而不是相同的页面。如果重定向为301,您将无法随意打开或关闭网站的移动版本,因为浏览器将缓存该页面。)redirect@Jon当然,对不起,我跳转到答案,还有另一个目的是在我的脑海中重新定位星期六。
RewriteRule ^(index.html)?$ http://m.mainevideotours.com [R,L]