我们正在构建一个移动网站,其 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。
我们面临的问题是,并非我们桌面网站上的所有网址都已在我们的移动网站上重新实现。理想情况下,我希望应用上述规则,但如果它尝试访问移动服务器并获得 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 吗?