2012-08-08 55 views
1

我從ThemeForest.net上開發的移動網站主題購買了,他建議我在此與社區討論.htaccess。我目前使用.htaccess將移動流量重定向到我的移動網站,這很好。不過,我發現如果有觸摸設備的人嘗試訪問我的服務器上的某個頁面,或者直接輸入URL或從外部鏈接輸入,則會將用戶重定向到我的移動網站的索引頁面。使用.htaccess進行移動設備重定向但僅限於根域

一個例子;我使用SlideShowPro Director爲Realtors創建了很多幻燈片。這些幻燈片嵌入到我創建的HTML頁面中。我將網址發送給我的房地產經紀人,以便他們可以訪問幻燈片,或將該網址鏈接到其他網站。如果有人使用觸摸設備跟隨該鏈接,則.htaccess文件將檢測到設備並將其重定向到移動索引頁面,而不是幻燈片頁面。很顯然,配置文件的方式有些麻煩。該文件的代碼如下:

RewriteEngine on 
RewriteBase/

# Check if this is the noredirect query string 
RewriteCond %{QUERY_STRING} (^|&)m=0(&|$) 
# Set a cookie, and skip the next rule 
RewriteRule^- [CO=mredir:0:www.mainevideotours.com] 

RewriteCond %{HTTP:x-wap-profile} !^$ [OR] 
RewriteCond %{HTTP:Profile}  !^$ [OR] 
RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|phone|pocket|mobile|pda|psp" [NC] 
RewriteCond %{HTTP_USER_AGENT} !macintosh [NC] 

# Check if we're not already on the mobile site 
RewriteCond %{HTTP_HOST}   !^m\. 
# Can not read and write cookie in same request, must duplicate condition 
RewriteCond %{QUERY_STRING} !(^|&)m=0(&|$) 

# Check to make sure we haven't set the cookie before 
RewriteCond %{HTTP_COOKIE}  !^.*mredir=0.*$ [NC] 

# Now redirect to the mobile site 
RewriteRule^http://m.mainevideotours.com [R,L] 

任何幫助將不勝感激!! -Keith

+0

什麼樣的錯誤或意外行爲,你好嗎?規則看起來很好 – 2012-08-08 20:03:08

+0

正如我所提到的,該文件是重定向來自我網站上任何頁面的任何和所有移動流量。如果有人嘗試訪問根域索引文件www.mainevideotours.com/index.html,而不是我域中的任何其他頁面,我希望它只能重定向。 – 2012-08-08 23:44:19

+0

問題是,例如,如果有人按照從另一個網站到我的服務器上的幻燈片頁面的鏈接並且他們正在使用觸摸設備,則該文件會檢測到該設備並將其重定向到移動索引頁面,因此它們永遠不會結束進入他們試圖訪問的頁面。 有沒有一種方法可以編寫我的鏈接,使它們不受.htaccess文件的影響? (www.example.com?m=0) – 2012-08-08 23:44:51

回答

0

我想它,如果有人試圖訪問根域的索引文件的任何其他網頁只能重定向,www.mainevideotours.com/index.html,而不是我的域名

啊。它看起來像你需要你的規則(最後一行)改成這樣:

RewriteRule ^(index.html)?$ http://m.mainevideotours.com [R,L] 

這應該涵蓋//index.html

+0

讓我試試看!感謝您及時的回覆! – 2012-08-09 00:31:13

+0

這樣做!非常感謝您的幫助! – 2012-08-09 01:58:47

+0

@Jon使用'[R = 301,L]'會不會更好?只是使用'R'使其成爲臨時重定向(302),這對搜索引擎排名不利(見[本帖]第二條消息)(http://www.webmasterworld.com/forum92/1017.htm) – 2013-03-23 16:35:52