2012-05-20 26 views
0

我需要重寫一個url,以便它將url變量添加到對子域的所有請求。使用mod_rewrite重定向移動網站url

實施例:

m.mydomain.com ==> m.mydomain.com?mobileFormat=true

這是觸發我的網站加載的移動版本標誌。

應該很簡單吧?我迄今爲止試過的所有東西都不起作用。

這裏是我目前在我的.htaccess文件中的代碼:

RewriteEngine On 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d 
    RewriteRule ^([a-zA-Z0-9/-]+)$ /index.cfm%{REQUEST_URI} [PT] 

    RewriteRule ^locale/([^/]*)$ /?siteLocale=$1 [L] 

    RewriteCond %{HTTP_HOST} ^m\.(.*)$ 
    RewriteRule ^(.*)$ m.%1/$1?mobileFormat=true [QSA] 

感謝您的幫助。

+0

實際上,它甚至會更好,因爲有幾個域別名,如果它的工作方式如下:m。[anydomainalias] ==> m。[anydomainalias]?mobileFormat = true –

+0

您可以舉例說明您嘗試過什麼以及你如何嘗試過它。 – Sp4cecat

+0

老實說,我認爲你在這裏的位置很近,正是我想要做的,但我看不出是什麼問題導致它出錯。我只是不太瞭解mod_rewrite。 –

回答

0

我一直在尋找的是解決辦法:

RewriteCond %{HTTP_HOST} ^m\.(.*)$ [NC] 
RewriteCond %{REQUEST_URI} !\.(xml|jpg|gif|png|js|css)$ 
RewriteRule .? $1?mobileFormat=true [QSA,L] 

感謝您的所有幫助。

+1

優秀 - 解決方案越小越好。 RewriteCond%{HTTP_HOST}^m \。 [NC]也會起作用。 – Sp4cecat

1

我假定這是你已經嘗試什麼:

RewriteCond %{HTTP_HOST} ^m\.(.*)$ 
RewriteRule ^(.*)$ m.%1/$1?mobileFormat=true [QSA] 

QSA是查詢字符串附加 - 如果他們試圖去的網址是:

m.mydomain.com?test=yes 

則上面會改寫這個來:

m.mydomain.com?mobileFormat=true&test=yes 
+0

感謝您的幫助。我得到一個500內部服務器錯誤。我在我的htaccess文件中添加了原始文章中的內容。 –

+0

有什麼想法?不知道如何從這裏開始。 –

+0

也許我們現在可以做些簡單的事情,比如:m.example.com ==> m.example.com/?mobileFormat=true –