【问题标题】:redirect users based on their browsers - htaccess or any other way根据浏览器重定向用户 - htaccess 或任何其他方式
【发布时间】:2014-01-13 08:50:09
【问题描述】:

我正在设计一个网站,并希望为不同的浏览器提供不同的页面,因为我的页面在 Firefox 和 IE 中看起来很糟糕

您能否建议我如何根据用户的浏览器将用户重定向到不同的页面。

如果您能给我提供现成的脚本,我将不胜感激,因为我不是专业程序员,而是为我的个人使用设计网站。

我希望我的不同页面适用于不同的浏览器,例如

http://mysite1.com/IE.htm

http://mysite1 .com/Chrome.htm

http://mysite1 .com/Firefox.htm

http://mysite1 .com/Safari.htm

请提供所有浏览器的脚本。 非常感谢。

【问题讨论】:

  • 看起来正是你应该避免做的事情?
  • 如果每个浏览器都需要不同的页面,那你就错了。
  • 你错过了Opera , Konqueror , ... and lot others 为什么不设计一种兼容所有浏览器的方式?
  • 在 IE 和 Netscape 主导市场的时候,这曾经是可行的,但现在它是浪费时间。只要您的网站正常运行,页面在各种浏览器中的外观是否略有不同并不重要。
  • 可能,您应该要求检测 PHP(或正在使用的任何编程语言)中的浏览器,以便为该浏览器合并适当的样式表!

标签: javascript php .htaccess redirect


【解决方案1】:

正如一些 cmets 所强调的,有很多很多的网络浏览器和浏览器的许多版本,不可能为所有这些开发。

话虽如此,因为这是一个个人项目,既然你问了,这里有一种用 PHP 做的方法:

首先,获取用户代理以使用$_SERVER['HTTP_USER_AGENT'] 精确定位浏览器。通过将他们的用户代理与常见浏览器的用户代理进行比较,可能可以识别他们的浏览器。 A list of common useragents 可能会派上用场。

具体来说,Google Chrome 的一个示例(您可能需要对其进行改进以区分 chrome 版本):

if(strpos($_SESSION['HTTP_USER_AGENT'],"Chrome") !== False){
    header("Location: http://mysite1.com/Chrome.htm");
    //redirects the browser
}

基本上,我们使用strpos() 在用户代理中搜索任何出现的字符串Chrome,这强烈建议使用Chrome 浏览器。

请注意,用户代理是出了名的不可靠,而且很容易伪造用户代理,因此不应信任它们。

【讨论】:

    【解决方案2】:

    大部分“我的网站在浏览器 X 中看起来很糟糕”都可以单独通过 CSS 解决。有多种技术可以帮助您,但我将解释两种:一种由 Paul Irish 的 blog post 建议,另一种在 SO post 中解释。

    浏览器嗅探

    HTML:

    <!--[if lt IE 7]>      <html class="ie6"> <![endif]-->
    <!--[if IE 7]>         <html class="ie7"> <![endif]-->
    <!--[if IE 8]>         <html class="ie8"> <![endif]-->
    <!--[if gt IE 8]><!--> <html>         <!--<![endif]-->
    

    CSS:

    div.foo { color: inherit;}
    .ie6 div.foo { color: #ff8000; }
    

    基本思想是使用条件 cmets 向根元素添加一个类,指示 IE 版本,允许您为该版本编写特定规则。

    CSS 重置

    CSS 中某些属性的默认值因浏览器而异。 CSS 重置是一组使这些默认值相同的规则。


    使用 CSS 使您的页面在不同浏览器中看起来相同的优点是 HTML 是相同的,因此维护起来比每次需要在网站。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      相关资源
      最近更新 更多