在.htaccess中使用RewriteRule
向不支持CSS3的浏览器提供不同的CSS和Javascript是不是一个坏主意?如果是这样的话?
例如,我想向不完全支持CSS3的浏览器提供特殊的CSS和Javascript。
我知道你可以在HTML中使用<!--[if xx]>
,但我认为在服务器级别上这样做会更清晰。
请指导我。
我计划如何做的示例:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "MSIE 9" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 8" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 7" [or]
RewriteCond %{HTTP_USER_AGENT} "MSIE 6"
RewriteRule the-file-for-all-other-browsers.css /css/style-for-ie-browsers-below-10.css [NC,L]
答案 0 :(得分:2)
您是如何计划使用.htaccess
执行此操作的?嗅探用户代理字符串可能会导致误报和generally isn't recommended。您应该使用Modernizr之类的东西,然后您可以为不支持您正在寻找的某些功能的各种浏览器准备优雅的降级/插件。
另外值得一提的是使用<!--[if IE]-->
标签是最小的开销,因为其他浏览器会忽略它们而不加载内容,它们也不会在使用类似用户代理字符串的浏览器上触发(指向Opera )。
答案 1 :(得分:1)
我说这是个坏主意。那个.htaccess重写将在每个请求上处理。这意味着图像,每个文件,一切。这是一个很大的开销,可能会导致网站速度变慢。
答案 2 :(得分:0)
考虑使用CSS3PIE,它为IE 9,8和7提供了polyfill,以便为它们提供CSS3功能。
答案 3 :(得分:0)
我认为这很糟糕,因为你无法确定htacess中的功能支持。
您不应该使用浏览器嗅探来提供优雅降级,而是在向用户展示高级功能(渐进增强)之前确定浏览器是否支持所需的功能