我想我要做的比我原先想象的要複雜。第一部分很簡單:我使用.htaccess將移動瀏覽器重定向到不同域的網站的「移動」版本。下面是「非移動」網站根目錄中的.htaccess的內容:在兩個域中使用.htaccess將流量從一個域重定向到另一個域時出現問題
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} android.+mobile|iphone [NC]
RewriteRule ^(.*)$ http://m.domain.tld%{REQUEST_URI} [R]
第二部分增加了一些複雜性。我在移動域上使用.htaccess將大多數請求重定向到根目錄中的index.php。這裏的.htaccess的內容在移動站點的根目錄:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) - [PT,L]
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*) index.php
當使用者傳送過來的非移動網站的請求只包含域名,這一切都按預期工作:
http://www.domain.tld
被重定向到
http://m.domain.tld
沒有問題。
此外,如果移動瀏覽器加載
http://m.domain.tld/abc
它按預期工作:的index.php在移動域的根被加載,並將其解析請求URL,和將值「ABC」到一個變量。
然而,事情打破奇怪的是,當我嘗試導航到
http://www.domain.tld/abc
在移動瀏覽器。這導致非移動文件,
http://www.domain.tld/abc/index.php
被加載到瀏覽器,從移動域格式化的CSS。我想要執行的初始重定向並未執行,但顯然,後續請求(如CSS文件的後續請求)將被重定向到。這兩個域都是同一臺服務器上的虛擬主機。
任何人都可以通過我正在嘗試做什麼,並提供解決方案嗎?
謝謝, 戴夫
偉大的你解決了你的問題!請稍後再回來查看並將您的答案標記爲已接受,以便大家都知道您的問題已得到解答。由於網站政策的原因,您可能需要等待48小時才能做到這一點。 – Marijn 2012-04-06 09:25:41