2009-07-20 40 views
1

我有一個主站點和一個移動站點,我正在尋找讓Apache基於他們報告的用戶代理重定向用戶,作爲下一步提供更好的移動體驗。例如。訪問http://jonathanscorner.com/spectacles/的用戶將被重定向到http://jonathanscorner.mobi/?url=/spectacles/。目前我在httpd.conf中嘗試過的東西似乎對我的iPhone沒有影響;我曾嘗試過的是:我如何區分移動用戶,爲什麼這不起作用?

 
    RewriteCond %{HTTP_USER_AGENT} (andriod|avantgo|blackberry|blazer|elaine 
|hiptop|iphone|ipod|kindle|midp|mmp|mobile|nokia|o2|opera.mini|opera.mobile|palm 
|pda|plucker|pocket|psp|smartphone|symbian|treo|up.browser|up.link|vodaphone|wap 
|windows.ce;.iemobile;|windows.ce;.ppc;|windows.ce;.smartphone;|ziino) [NC] 
    RewriteRule (.*) http://jonathanscorner.mobi/?url=$1 [R=302,L] 

有一個目光轉向301時,事情很好地工作。

我現在面臨的直接問題是爲什麼當我使用我的iPhone訪問時(以及我可以輕鬆地將手機用戶反彈到移動網站),這不是重定向http://jonathanscorner.com/spectacles/;我的更廣泛的問題是我可以採取什麼小步驟來改善移動用戶的訪問體驗。主要網站在平面設計上有一些真正的藝術性;該移動網站旨在提供輕微的觸摸,例如,每頁打一個小網絡。

回答

2

看起來像你的用戶代理字符串缺少的東西,也許這些鏈接可以幫助你。

http://www.mattcutts.com/blog/iphone-user-agent/ http://www.gtrifonov.com/blog/2009/04/08/IPhone_User_Agent_Strings.aspx

+0

它們包含字符串「iPhone」。應該RewriteCond ...(... | iphone | ...)[NC]不匹配作爲不區分大小寫的匹配?如果我的iPhone在其用戶代理字符串中提供「iPhone」,並且條件不匹配,那麼我缺少有關Apache如何工作的信息。 – JonathanHayward 2009-07-20 20:45:21

0

http://deviceatlas.com/

此頁面上得了網手機用戶代理的最佳基地。它還具有與不同UA一起工作的API。也許這對你有用?

BTW;開發者版本是免費的,但如果你認真對待它,專業版的小額費用應該是值得的。

0

環顧四周,自動適應WURFL中的用戶代理字符串,並看到重定向激活爲FF,我選擇了一些具有少許魔力的東西以及將桌面用戶彈跳到移動網站的危險。

您可以在主頁上看到http://JonathansCorner.com/的結果:只顯示頁面頂部顯示「適合移動設備的網站」的鏈接,並顯示大多數移動設備使用情況,但不顯示大多數桌面使用情況。這是遠遠不夠完美的,但這是一個適度的改進。 (並且,AFAICT,它沒有東西,搜索引擎蜘蛛將解釋爲向搜索引擎顯示的文本,但隱藏來自普通用戶,這被作爲黑帽SEO處罰。)

我是如何做到的:跟着http://www.alistapart.com/articles/return-of-the-mobile-stylesheet,我將我的主樣式表設置爲不顯示mobile_notice類型的div。這在捕獲iPhone的移動樣式表中被抵消。來自頁面標題:

<pre> 
<link rel="stylesheet" href="/include/style.cgi" type="text/css" /> 
<link rel="stylesheet" href="/include/mobile.css" type="text/css" 
media="handheld" /> 
<link rel="stylesheet" href="/include/mobile.css" type="text/css" 
media="only screen and (max-device width: 480px)" /> 
</pre> 

大多數不使用JavaScript的瀏覽器不是使用NoScript之類的嚮導;他們的能力較差的移動瀏覽器,可能這需要簡化的移動網站上的最多的人:

<pre> 
<noscript><h1><a href="http://JonathansCorner.mobi/">Mobile-friendly 
version</a></h1></noscript> 
</pre> 

而且,沒有出現被蜘蛛食物從公衆隱藏的搜索引擎懲罰的文字,我添加不錯,不推薦使用document.write(),因此具有更強大功能的瀏覽器的手機將只能看到在手機上顯示的div。

<pre> 
<script> 
document.write("<div class='mobile_notice'><h1><a href='http://JonathansCorner.mobi/'>Mobile-friendly version</a></h1></div>"); 
</script> 
</pre> 

淨效應?適度的改善;在移動設備上有邀請使用the mobile site,但訪客可以留在the full web main site如果需要。它避免了被搜索引擎處罰的東西。

還有改進的空間 - 尤其是對於進入其他地方而不是首頁的訪問者並沒有做任何事情,也沒有留下足夠長的時間來看這個邀請。但我認爲這是一個真正的改進。