2010-09-20 106 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