1

我想将 ipad/iphone 和 android 用户重定向到告诉用户获取应用程序或继续访问主站点的特定页面。

我以为我可以用 htaccess 做到这一点:

 RewriteCond %{HTTP_USER_AGENT} "android|ipad|iphone|ipod" [NC]
 RewriteRule ^(.*)$ http://www.example.com/getapp [L,R=302]

例如,用户想要从 Android 或 iOS 设备访问 http://www.example.com 。我想将该用户重定向到 getapp 页面。在这个 getapp 页面中是获取应用程序的链接(从 Play 或 iTunes),如果您只想跳过应用程序的下载,它有一个指向主站点 (www.example.com) 的链接。

但是,如果我将此代码放入 htaccess 中,我会得到This web page has a redirect loop. 也许 htaccess 是错误的方法。有什么更好的方法来做到这一点?

4

2 回答 2

0

你可以试试这个代码:

RewriteCond %{HTTP_USER_AGENT} "android|ipad|iphone|ipod" [NC]
RewriteRule ^(?!getapp).*$ http://www.example.com/getapp [L,R=302,NC]
于 2013-09-12T19:52:08.817 回答
0

/getapp如果您已经在那里,您不想重定向到。尝试排除该 URI:

RewriteCond %{HTTP_USER_AGENT} "android|ipad|iphone|ipod" [NC]
RewriteRule !^getapp http://www.example.com/getapp [L,R=302]

要在用户访问 getapp 页面后允许选择退出,您需要保留 cookie 或其他内容:

RewriteCond %{HTTP_USER_AGENT} "android|ipad|iphone|ipod" [NC]
RewriteCond %{HTTP_COOKIE} !app-optout
RewriteRule !^getapp http://www.example.com/getapp [L,R=302]

RewriteCond %{HTTP_USER_AGENT} "android|ipad|iphone|ipod" [NC]
RewriteRule ^getapp - [CO=app-optout:1:www.example.com] 

所以在这里,只有/getapp没有“app-optout”cookie 的情况下才会重定向到。在那里,您设置选择退出,这样如果他们导航出 getapp 页面,他们就不会再次被重定向到那里。

于 2013-09-12T18:12:35.597 回答