2010-09-20 85 views
0

我试图做给黑莓用户到我的移动网站重定向重定向:的.htaccess黑莓不工作

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

在我的.htaccess,但是当我尝试从设备访问什么也没有发生,我已经删除了缓存和cookis,没有任何工作。我一直在Google上搜索,似乎我正确地做了重定向,但我猜不是,我错过了什么?

我的.htaccess只包含那个。

编辑 我的服务器根目录中的.htaccess。

回答

2

如果这不是您的.htaccess文件中的唯一规则,那么您可能会遇到以下规则混淆重定向的问题。要立即重定向,您需要包含L标志。

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

把所有的一起,我们得到类似如下:

# 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/目录中的相同(但适用于移动设备)。

+0

即使我添加并尝试过我的黑莓它不会工作,这是我的.htaccess的唯一规则,所以它不应该搞乱任何= /是否有另一个原因,它可能不工作?我以前从来没有这样做过诚实 – Tsundoku 2010-09-20 02:49:12

+0

@Luis Armando:嗯......可以肯定的是,你有'RewriteEngine On'在那里呢?我现在没有看到任何可能会出错的东西,除非出于某种原因'HTTP_USER_AGENT'被设置为奇怪的东西,但看起来不太可能。之后我会把它放到我的测试服务器上,看看我的眼睛是否只是缺少一些明显的东西。 – 2010-09-20 04:02:01

+0

想念RewriteEngine On ...我觉得很愚蠢:(但是非常感谢:) – Tsundoku 2010-09-20 20:52:18

1

确保您的BlackBerry未处于“模拟模式”,它通过IE或Firefox的用户代理而不是BlackBerry。您可以检查浏览器的选项屏幕。

更好的解决方法是将您的重写规则基于移动浏览器应始终准确发送的“x-wap-profile”和/或“profile”标题。

+0

我如何重写x-wap-profile?而不是黑莓? – Tsundoku 2010-09-20 20:49:05