Htaccess 无法重定向至移动版内页

Htaccess 无法重定向至移动版内页

我在设置 htaccess 规则以将我的网站重定向到移动设备上的内页时遇到了问题。我想重定向我网站中的所有页面,以便在通过移动设备访问时重定向到移动网站。

有效的是:在移动设备上正确重定向索引页。

不起作用的是:如果我们采取http://MY-SITE/联系我们移动设备上的页面,它将转到实际站点。在这种情况下,我们需要转到移动设备主页。

以下是我们当前正在使用的 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

答案1

您的 RewriteRule 使用表达式^$作为要匹配的 URL 模式 - 此模式表示“字符串开头紧接着字符串结尾,没有什么之间”。在您的示例中,请求将以 的形式出现[start-of-string]Contact-Us[end-of-string],这与模式不匹配,因为那里开始与结束之间的某事。

如果您想将所有人重定向到移动登录页面,RewriteRule 中的模式将需要一个表示“匹配任意数量的字符”的部分 - 如下所示:

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

[顺便说一句,作为移动设备用户,我发现“移动登陆页面”真的很烦人,我宁愿被重定向到我请求的页面。但我明白这往往更难做到。]

相关内容