1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<?php namespace Imagify\Webp\RewriteRules;
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
/** * Add and remove rewrite rules to the web.config file to display webp images on the site. * * @since 1.9 * @author Grégory Viguier */ class IIS extends \Imagify\WriteFile\AbstractIISDirConfFile {
/** * Name of the tag used as block delemiter. * * @var string * @since 1.9 * @author Grégory Viguier */ const TAG_NAME = 'Imagify: rewrite rules for webp';
/** * Get unfiltered new contents to write into the file. * * @since 1.9 * @access protected * @source https://github.com/igrigorik/webp-detect/blob/master/iis.config * @author Grégory Viguier * * @return string */ protected function get_raw_new_contents() { $extensions = $this->get_extensions_pattern(); $home_root = wp_parse_url( home_url( '/' ) ); $home_root = $home_root['path'];
return trim( ' <!-- @parent /configuration/system.webServer/rewrite/rules --> <rule name="' . esc_attr( static::TAG_NAME ) . ' 2"> <match url="^(' . $home_root . '.+)\.(' . $extensions . ')$" ignoreCase="true" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_ACCEPT}" pattern="image/webp" ignoreCase="false" /> <add input="{DOCUMENT_ROOT}/{R:1}{R:2}.webp" matchType="IsFile" /> </conditions> <action type="Rewrite" url="{R:1}{R:2}.webp" logRewrittenUrl="true" /> <serverVariables> <set name="ACCEPTS_WEBP" value="true" /> </serverVariables> </rule>
<!-- @parent /configuration/system.webServer/rewrite/outboundRules --> <rule preCondition="IsWebp" name="' . esc_attr( static::TAG_NAME ) . ' 3"> <match serverVariable="RESPONSE_Vary" pattern=".*" /> <action type="Rewrite" value="Accept"/> </rule> <preConditions name="' . esc_attr( static::TAG_NAME ) . ' 4"> <preCondition name="IsWebp"> <add input="{ACCEPTS_WEBP}" pattern="true" ignoreCase="false" /> </preCondition> </preConditions>' ); } }
|