2015-06-08 80 views
1

這個問題可能看起來像它已被問及我已經看到他們所有,我一直在尋找和嘗試很多答案和未獲批准的答案。我成功地做到了這一點,以便如果用戶轉到桌面版本,它將轉到移動網站,即使他們去了像。

www.domain.com/aboutus 

它會帶他們去

m.domain.com/?page=aboutus 

所以這是問題所在,而不是它不工作,但我一直在試圖從重定向刪除$ _GET變量「?page =」部分。

我的.htaccess看起來像......

<IfModule mod_rewrite.c> 

    RewriteEngine on 

    # if it is not a file or folder, rewrite to index.php?page=<value> 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] 

</IfModule> 

<IfModule mod_rewrite.c> 

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos" [NC] 
RewriteRule ^index.php(.*)$ http://m.domain.com/ [QSA,L] 

</IfModule> 

我已經嘗試添加與重定向請求文件名移動,但無濟於事。有些網站通過使用內置的谷歌瀏覽器檢測元素已經實現了9gag,google將用戶代理更改爲選定的設備(移動電話),我用它來測試重定向的方式。所以如果我寫9gag.com/hot - 它會帶我到m.9gag.com/hot而不是m.9gag.com/?page=hot或任何地方。

在此先感謝,我真的被這個困擾。

回答

1

您需要先檢查移動重定向,並且需要包含請求URI。

<IfModule mod_rewrite.c> 

    RewriteEngine on 

    # Redirect mobile requests to the mobile site 
    # (but don't redirect when accessing certain directories) 
    RewriteCond %{REQUEST_URI} !^/images [NC] 
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos" [NC] 
    RewriteRule ^(.*)$ http://m.domain.com/$1 [R=302,L] 

    # If it is not a file or folder, rewrite to index.php?page=<value> 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] 

</IfModule> 

您可以重定向永久改變302至301

+0

哈哈!謝謝你,你是對的。只是一些重新安排!謝謝回覆。 – Yussuf

+0

一個簡短的問題也以某種方式與此有關。我在主網站上存儲我的所有內容,例如圖像,例如www.domain.com/images而不是m.domain.com/images,但它會強制頁面從m.domain.com/images獲取。有沒有辦法通過主頁面而不是後續文件夾來允許這種強制? – Yussuf

+0

不客氣。已更新,因此您可以在訪問某些文件夾時跳過重定向。要添加更多文件夾,您可以爲每個文件夾創建一個新條件,或將表達式更改爲'!^ /(images | other-folder | etc)' –

相關問題