【问题标题】:Passthrough <filname>.png to <filename>8.png if IE<=6 and <filename>8.png exists如果 IE<=6 和 <filename>8.png 存在,则将 <filename>.png 传递到 <filename>8.png
【发布时间】:2010-09-21 21:10:29
【问题描述】:

我刚刚发现通过 Photoshop 将 PNG32 转换为 PNG8 将修复 IE

所以我有这样的想法,如果客户端使用 IE

我不是 htaccess/httpd 指令方面的专家,所以我在这里寻求帮助。

标题是伪代码本身。

【问题讨论】:

    标签: apache .htaccess png


    【解决方案1】:

    我还没有真正尝试过,但我认为它应该可以工作:

    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4.0\ \(compatible;\ MSIE\ [1-6]\.
    RewriteCond %{REQUEST_FILENAME} ^(.+)(\.png)$
    RewriteCond %18%2 -f
    RewriteRule ^(.+)\.png$ $18.png [L,QSA]
    

    第一行打开 mod_rewrite(如果你已经这样做了,可以省略)。 第二个是 IE 8.png是否存在。第五行实际上做了重定向。

    【讨论】:

    • 我会在运行这个美味的脚本后立即提供反馈
    • 失败的原因是什么?尝试只使用 HTTP_USER_AGENT 条件,或者只使用 REQUEST_FILENAME 条件,看看哪个是错误的。
    • 我在 IE 正则表达式的空格前添加了反斜杠;看看是否效果更好。
    • 是的,它确实有效!我一直在清除 IE 的缓存,但只有重新启动浏览器才能解决问题。
    【解决方案2】:

    把它放在你的 .htaccess 中

    RewriteEngine on
    RewriteRule ^/(.*)\.png$ /$18.png [L,QSA]
    

    应该可以。

    【讨论】:

    • 这不会检查浏览器版本 IE
    • 我知道该指令将 some.png 转发到 some8.png,但它是否也处理 IE 浏览器检测。哦,我也忘了检查文件是否也存在。
    • 不检查IE
    • 使用 cjm 的 .htaccess。我猜他更仔细地阅读了这个问题......对不起
    猜你喜欢
    • 2011-05-28
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 2011-08-03
    • 1970-01-01
    • 2015-04-06
    相关资源
    最近更新 更多