2012-04-05 4 views
0

私がやっていることは、もともと考えていたよりも複雑だと思います。最初の部分は真っ直ぐです:私は、モバイルブラウザを別のドメインのウェブサイトの "モバイル"のリバースにリダイレクトするために.htaccessを使用しています。両方のドメインで.htaccessを使用して、あるドメインから別のドメインにトラフィックをリダイレクトするときの問題

RewriteEngine on 
RewriteCond %{HTTP_USER_AGENT} android.+mobile|iphone [NC] 
RewriteRule ^(.*)$ http://m.domain.tld%{REQUEST_URI} [R] 

第2部では、複雑さが増しています。「モバイル以外の」サイトのルートにある.htaccessの内容は次のとおりです。私はモバイルドメイン上で.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 

に移動しようとすると、

はしかし、物事は妙に分解する。これは、非モバイルファイル、モバイルドメインからCSSによってフォーマット

http://www.domain.tld/abc/index.php 

がブラウザにロードされ、になります。実行したい最初のリダイレクトは実行されませんが、CSSファイルのような後続の要求がリダイレクトされているようです。どちらのドメインも同じサーバー上の仮想ホストです。

誰も私がやろうとしていることを解消して解決策を提供できますか?

おかげで、 デイブ

答えて

1

は、私はこれを考え出しました。問題は、モバイルブラウザをリダイレクトするためにwww.domain.tldのディレクトリ/ abcに.htaccessが存在しないことでした。私は、/ abcディレクトリが存在し、vhostのルートディレクトリにある.htaccessを通してすべての要求を処理するという事実をApacheが魔法のように無視することを期待していたと思います。

したがって、http://www.domain.tld/abcのリクエストはリダイレクトされませんでした。アドレスバーに「http:// www ...」と表示されても、そのリソースのリクエストは「http:// m ...」から来ていて、CSSファイルが存在するため、「モバイルフォーマット」が適用されていましたモバイルドメイン上で

+0

あなたはあなたの問題を解決しました。後でもう一度チェックして、あなたの質問に答えがあることを誰もが理解できるように、あなたの答えを合格とマークしてください。サイトポリシーのため、できるようになるまでに最大48時間待つ必要があります。 – Marijn

関連する問題