現在のデスクトップサイトとURL構造が一致するモバイルサイトを構築しています。私たちはそれらを同じドメインでホストしており、Apacheを使用して、WURFLを使用してそれらの間のトラフィックをフィルタリングし、どのエージェントがどこに行くかを決定するのに役立てています。
現在、フィルタリングルールは次のようになっています。
RewriteCond %{HTTP_COOKIE} "bucket=mobile"
RewriteRule ^(.*)$ http://internal-mobile-pool.ourdomain.com/$1 [P]
RewriteRule ^(.*)$ http://internal-desktop-pool.ourdomain.com/$1 [P]
WURFLベースのソリューションは、「バケット」Cookieを設定します。
私たちが直面している問題は、デスクトップサイトのすべてのURLがモバイルサイトに再実装されているわけではないということです。私が理想的に望んでいるのは、上記のルールを適用することですが、モバイルサーバーにアクセスしようとして、404を取得すると、代わりにデスクトップサーバーからコンテンツが提供されます。
つまり、モバイルがwww.ourdomain.com/some_desktop_only_resource.htmlをリクエストし、internal-mobile-pool.ourdomain.com / some_desktop_only_resource.htmlが404を返す場合、desktop-pool.ourdomain.com/some_desktop_only_resourceのコンテンツを返します。 .html
これを擬似コードで説明するには
if(isMobile)
response = getMobileResponse(url)
if(response.code != 404)
serveResponse(response)
else
serveResponse(getDesktopResponse(url))
サポートされているすべてのURLをこのファイルにリストすれば、これが可能になることはわかっています。このプラットフォーム認識レイヤーを、提供するアプリケーションから独立させたいので、これを避けたいと思います。また、そこからリダイレクトすることでモバイルアプリケーション自体でこれを解決できることも知っていますが、可能であれば、このプラットフォーム認識レイヤーを自己完結型にする必要があります。
これはmod_rewriteを使用して可能ですか?