web-dev-qa-db-ja.com

.htaccessモバイルリダイレクトの問題

2つのサブフォルダーを持つサイトにモバイルリダイレクトを設定しようとしていますが、両方を同時に機能させることはできません。

これがサイトの構造です

  • www.example.com/EN/
  • www.example.com/ES/

これはバイリンガルサイトであるため、各サブフォルダーには各言語バージョンに対応するファイルが含まれています。次に、301リダイレクトを使用し、/EN/のインデックスをメインインデックスとして設定しました。すべてがリダイレクトされていました。私が使用していた:

DirectoryIndex index.html
Redirect /index.html http://www.example.com/EN/index.html

example.comおよび古いURLを新しいURLにリダイレクトするいくつかのRewriteCond.

m.example.comにモバイルバージョンを追加することにした前に、それはうまくいきました。

https://stackoverflow.com/questions/3680463/mobile-redirect-using-htaccess で提供されているソリューションを使用し、モバイルバージョンを適切にリダイレクトしますが、デスクトップは両方とも機能しています。加えて、私のモバイル版もバイリンガルでなければなりません。


明確にするために最善を尽くします。

私のサイトはバイリンガルです。各言語のコンテンツを保持するために、2つのサブフォルダー(ENおよびES)を作成しました。

私のデスクトップサイトでは、正しいインデックスを見つけるために何らかのリダイレクトが必要です(少なくともそのうちの1つなので、英語版をメインインデックスとして設定することにしました)。使用したスクリプトは上記のとおりです。

ここで、モバイル検出リダイレクトを追加すると(モバイルデバイスのモバイルバージョンに移動します)、デスクトップ上の通常のデフォルトインデックス(www.example.com/index.html)に移動するようですnotmyデスクトップインデックス。

助言がありますか?

3
val

あなたが提供したリンクから..

# Now redirect to the mobile site
RewriteRule ^ http://m.example.org%{REQUEST_URI} [R,L]

Lフラグを使用している場合、処理する最後のルールを意味するので、さらにルールを追加すると驚きがあります:-)

また、リダイレクトコマンドを使用する代わりに、モバイル/デスクトップバージョン用の他のルールを使用して、デフォルトでENサブディレクトリにリダイレクトすることもできます。ただし、ここでの問題は、htaccessでのルールの順序とLフラグの組み合わせだけだと思います。

2
jflaflamme