2011-12-19 86 views
1

我目前使用從出色的移動檢測腳本:detectmobilebrowsers.mobiPHP:最好的重定向技術

這個作品真的很好但是,它在你的主站點(包括任何查詢參數)的每一個和任何頁面重定向您的移動網站的主頁。

我需要的是:

http://www.mydomain.com/page.php?var1=X&var2=Y

直接到:

​​

我應該與查詢字符串到他們的移動版本重定向多個頁面。

解決此問題的最佳方法是什麼?我認爲我應該:

檢查$ _SERVER ['HTTP_REFERER']頁面和查詢字符串,使用開關/大小寫循環瀏覽主頁和移動網站上需要匹配的10頁左右頁面,然後更改移動檢測腳本中的引薦URL。

這是否有意義?

我一直在努力獲取頁面和查詢...任何意見和想法的歡迎。

回答

3
if ($mobile_is_detected) { 
    header('Location: http://mobile.mydomain.com' . $_SERVER['REQUEST_URI']); 
    exit; 
} 
+1

安迪,謝謝,一如往常,解決方案比我想象的更簡單。我只需要添加一些代碼來僅對某些頁面執行此操作。非常感謝。 – mattl 2011-12-19 03:17:28

0

您可以使用$_SERVER['QUERY_STRING']進行重定向,以將查詢字符串添加到重定向網址中。

+0

謝謝,試過,但無法讓頁面顯示引用頁面中的變量。我是否需要更改全局設置? – mattl 2011-12-19 02:08:46

2

除了安迪的回答,您重定向應該響應狀態設置爲301

要小心時,你可能不叫header()如果你調用函數之前印刷的任何HTML或echo編什麼。

if ($mobile_is_detected) { 
    header('HTTP/1.1 301 Moved Permanently'); 
    header('Location: http://mobile.mydomain.com' . $_SERVER['REQUEST_URI']); 
} 
+0

謝謝Dimme。爲什麼需要301?我允許移動用戶選擇返回主站點,如果他們喜歡... – mattl 2011-12-19 02:49:03

+0

301是告訴瀏覽器該網頁已永久移動。這對搜索引擎如Google的索引很有用。即使在您移動網頁後,它也可以幫助您保持Google的排名。如果你想給用戶返回主站點的機會,那麼你應該使用'header('HTTP/1.1 302 Moved Temporarily');' – Dimme 2011-12-19 02:55:21

+0

OK,理解。這個腳本只重定向手機,搜索引擎應該繼續到索引的主要網站... – mattl 2011-12-19 03:11:36