Htaccess不会redirect到Mobile的内部页面

我在设置htaccess规则时将问题redirect移动设备的内部页面。 我想通过移动设备访问我的网站中的所有网页,redirect到移动网站。

什么工作是:在移动设备中正确redirect索引页面。

什么不工作是:如果我们在移动设备上采取http:// MY-SITE / Contact-Us页面,它将会到达实际的站点。 在这种情况下我们需要到移动设备主页。

这是我们目前使用的htaccess文件:

#Redirect Mobile Users RewriteCond %{REQUEST_URI} !^/Mobile-Landing-Page/.*$ # if the browser accepts these mime-types, it's definitely mobile, or pretending to be RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml" [NC,OR] # a bunch of user agent tests 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] RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^$ /Mobile-Landing-Page/ [L,R=302] 

我已经尝试了很多规则,但输出是失败的。

如果任何人有一个关于如何实施的想法。 请分享。

谢谢,

阿伦S

你的RewriteRule使用expression式^$作为匹配的URL模式 – 这个模式的意思是“string开头紧跟在string结束之后,而两者之间没有任何内容 ”。 在你的例子中,请求会以[start-of-string]Contact-Us[end-of-string]的forms出现,因为在开始和结束之间存在某些内容,所以与模式不匹配。

如果您想将所有人redirect到移动login页面,则RewriteRule中的模式将需要一个“匹配任意数量的字符”部分 – 如下所示:

 RewriteRule ^(.*)$ /Mobile-Landing-Page/ [L,R=302] 

[顺便说一句,作为一个移动设备用户,我发现“移动登陆页面”真的很烦人,宁愿被redirect到我要求的页面的移动版本。 但是我很欣赏这样做通常很难。]