提问人:Lori 提问时间:6/23/2015 最后编辑:Lori 更新时间:6/23/2015 访问量:773
使用.htaccess根据浏览器重定向用户
using .htaccess to redirect user based on browser
问:
如果用户使用的是 Chrome,我想重定向他们。我已经尝试过使用 javascript/jquery 进行过此操作,但没有一致的结果(如果有的话)。我知道如何使用 .htaccess 重定向,但不知道基于浏览器重定向的语法。请帮忙!如果有更好的方法,我是开放的。
答:
重定向
cPanel中有一个工具可以为您创建重定向,请参阅如何创建重定向
从特定文件重定向到新文件
例:
重定向 /redirect_from.html newsite.com/folder/redirect_to.html 在上面的示例中,根目录中名为 redirect_example.html 的文件被重定向到 URL newsite.com/folder/redirect_example.html 如果旧文件位于子目录中,则可以使用:
/subdirectory/redirect_from.html 通配符重定向/从一个文件夹重定向到新文件夹
重定向 /redirect_from newsite.com/redirect_to 现在,在 /olddirectory 下对您站点的任何请求都将重定向到新站点,并在 URL 中添加额外信息,例如,如果有人输入:
http://www.example.com/redirect_from/images/image.gif它们将被重定向到:
http://www.newsite.com/redirect_to/images/image.gif
评论
现在我遇到了你的问题,也有了解决方案。您可以在 .htaccess 文件中使用 RewriteCond 指令来测试用户的客户端,无论是 firefox 还是 chrome,并相应地重定向。代码如下所示: RewriteCond %{HTTP_USER_AGENT} 火狐浏览器 重写规则 ^abc.html$ example.com/xy/firefox.html [R=301]
这会将所有用户字符串中包含 firefox 的浏览器重定向到 firefox.html。您需要找到有多少浏览器为其用户字符串命名,并将其相应地放入代码中。 当您无法为浏览器找到正确的HTTP_USER_AGENT字符串时,可能会出现一些问题,即如果 chrome 的用户名是 firefox,那么 chrome 的用户也将被重定向到 firefox.html。
因此,以下代码可能适合您:
RewriteEngine 开启
RewriteCond %{HTTP_USER_AGENT} 火狐浏览器 RewriteRule ^me.html$ firefox.html [NC,L]
RewriteCond %{HTTP_USER_AGENT} Chrome RewriteRule ^me.html$ chrome.html [NC,L]
RewriteCond %{HTTP_USER_AGENT} MSIE RewriteRule ^me.html$ 即.html [NC,L]
RewriteCond %{HTTP_USER_AGENT} Safari RewriteRule ^me.html$ safari.html [NC,L]
RewriteCond %{HTTP_USER_AGENT} 歌剧 RewriteRule ^me.html$ opera.html [NC,L]
RewriteRule ^me.html$ 默认值.html [L]
L 标志确保如果没有用户字符串匹配,则会为其打开默认页面。
我希望这对你有所帮助。
上一个:会话未在下一页保留原始值
评论