使用.htaccess根据浏览器重定向用户

using .htaccess to redirect user based on browser

提问人:Lori 提问时间:6/23/2015 最后编辑:Lori 更新时间:6/23/2015 访问量:773

问:

如果用户使用的是 Chrome,我想重定向他们。我已经尝试过使用 javascript/jquery 进行过此操作,但没有一致的结果(如果有的话)。我知道如何使用 .htaccess 重定向,但不知道基于浏览器重定向的语法。请帮忙!如果有更好的方法,我是开放的。

.htaccess 重定向

评论

0赞 CBroe 6/23/2015
“我的问题是,当用户在我的 php 聊天室中时,如果从 Chrome 访问,计时器不会使用 jquery .load 刷新”——那么这就是您应该解决的问题。
0赞 Panama Jack 6/23/2015
Lori 请出示您拥有的当前 .htaccess 重定向代码。如果他们使用 chrome,你会在哪里重定向他们?
0赞 Lori 6/23/2015
@CBroe 相信我,我已经尝试找到该问题,我在 Chrome 上找到的有关此问题的所有文档都说它已成为几年来的已知问题,并且 Google 尚未解决。我的答案是忘记Chrome,我厌倦了它的所有问题。
0赞 Lori 6/23/2015
@Panama Jack - 由于我想基于浏览器重定向,因此我没有代码,否则我早就实现了它。这就是问题所在,我不知道基于浏览器重定向的语法。
0赞 CBroe 6/23/2015
“这几年来一直是一个已知的问题,但谷歌还没有解决”——具体来说,那会是什么问题?你能参考这方面的任何错误报告吗......?

答:

0赞 Vineet Kumar Singh 6/23/2015 #1

重定向

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

评论

0赞 Lori 6/23/2015
谢谢,我确实知道如何做到这一点。但是,我需要根据用户的浏览器进行重定向。具体来说,如果 Chrome 重定向。
0赞 Vineet Kumar Singh 6/23/2015 #2

现在我遇到了你的问题,也有了解决方案。您可以在 .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 标志确保如果没有用户字符串匹配,则会为其打开默认页面。

我希望这对你有所帮助。