.htaccess重定向黑莓无法正常工作

时间:2010-09-20 02:21:01

标签: .htaccess blackberry redirect

我正在尝试通过执行以下操作将黑莓用户重定向到我的移动网站:

# redirect for blackberry users
RewriteCond %{HTTP_USER_AGENT} ^.BlackBerry.$
RewriteRule ^(.*)$ http://www.domain.com/m/ [R=301]

在我的.htaccess中,但是当我尝试从设备访问时没有任何反应,我已经删除了缓存和cookis,没有任何作用。我一直在谷歌搜索,似乎我正在正确地进行重定向,但我猜不是,我错过了什么?

顺便说一下,我的.htaccess只包含了这个。

修改 我服务器根目录中的.htaccess。

2 个答案:

答案 0 :(得分:2)

如果这不是.htaccess文件中的唯一规则,则可能会遇到以后的规则弄乱重定向的问题。要立即重定向,您需要包含L标记。

我还怀疑用户代理的正则表达式对于您正在测试的输入可能不正确,因为两个.只匹配单词“BlackBerry”两侧的一个字符。防止带有检查的重定向循环以查看您是否已经在/m/中也是一个好主意(尽管如果在该目录中的.htaccess文件中有mod_rewrite指令,那么它并不重要)。 / p>

将所有这些放在一起,我们得到如下内容:

# Check for x-wap-profile/Profile headers
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP:Profile}       !^$ [OR]
# Check for BlackBerry anywhere in the user agent string
RewriteCond %{HTTP_USER_AGENT}    BlackBerry [NC]
# Make sure we're not in /m/ already
RewriteCond %{REQUEST_URI}        !^/m/
RewriteRule ^ http://example.com/m/ [R=301,L]

您可能还希望RewriteRule为...

RewriteRule ^.*$ http://example.com/m/$0 [R=301,L]

...如果/m/目录中的内容名称相同(但适合移动设备)。

答案 1 :(得分:1)

确保您的BlackBerry未处于通过IE或Firefox而非BlackBerry的用户代理的“仿真模式”。您可以在浏览器的选项屏幕中查看。

更好的解决方法是将重写规则建立在“x-wap-profile”和/或“profile”标题上,移动浏览器应始终准确发送这些标题。