我想将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是错误的方式。有什么更好的方法呢?
答案 0 :(得分: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]
所以在这里,如果没有“app-optout”cookie,你只能重定向到/getapp
。在那里,你设置了选择退出,这样如果他们离开getapp页面,他们就不会再被重定向到那里。
答案 1 :(得分:0)
你可以尝试这段代码:
RewriteCond %{HTTP_USER_AGENT} "android|ipad|iphone|ipod" [NC]
RewriteRule ^(?!getapp).*$ http://www.example.com/getapp [L,R=302,NC]