首页 > 解决方案 > 如果浏览器在 IIS 中支持,则有条件地提供 webp 图像

问题描述

如果浏览器支持,则提供 webp 图像而不是 jpeg 和 png 似乎在使用 .htacess 文件和 apache 时是可能的。

我从来没有设法让它与 IIS 一起工作。我通常使用 WordPress 作为我选择的 CMS,并且有一些 WordPress 插件可以自动 webp 转换现有上传的图像并包括重定向,但是重定向/条件检测不适用于开箱即用的 IIS。

我已经做好了所有必要的准备,比如在 IIS 中允许 webp 扩展和 MIME。加载现有的 webp 文件不是问题,我只是不想在使用 IE11 和 Safari 等劣质浏览器时加载 webp 版本,因为它不会显示任何内容。互联网上有大量指南解释如何在 IIS 中启用 webp 支持,但我设法找到了 0 篇文章如何在现实生活场景中实际使用它,即网站必须在 IE11 和 Safari 中正确显示。

标签: wordpressiisurl-rewritingwebp

解决方案


您需要将webp-urls 重定向到备用jpeg-urls。

根据URL Rewrite Module Configuration Reference,可以使用类似于以下的规则来完成

<rules>
    <rule name="Some name" stopProcessing="true">
        <match url="^(.*)\.webp$" />
        <conditions>
            <add input="{HTTP_USER_AGENT}" pattern="*MSIE*" />
        </conditions>
        <action type="Redirect" url="{R:1}.jpeg" redirectType="Permanent" />
    </rule>
</rules>

我没有IIS,也没有IE,所以无法测试。
此外,如果您的后备图像具有不同的扩展名,则取决于您想出一种方法来决定哪些webp图像映射到jpegurl,哪些映射到png. 或者您可以选择将jpeg/png-urls 重定向到webp-urls。


推荐阅读