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
|
<?php namespace Imagify\Webp\RewriteRules;
defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
/** * Add and remove rewrite rules to the .htaccess file to display webp images on the site. * * @since 1.9 * @author Grégory Viguier */ class Apache extends \Imagify\WriteFile\AbstractApacheDirConfFile {
/** * 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/vincentorback/WebP-images-with-htaccess * @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( ' <IfModule mod_setenvif.c> # Vary: Accept for all the requests to jpeg, png, and gif. SetEnvIf Request_URI "\.(' . $extensions . ')$" REQUEST_image </IfModule>
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase ' . $home_root . '
# Check if browser supports WebP images. RewriteCond %{HTTP_ACCEPT} image/webp
# Check if WebP replacement image exists. RewriteCond %{REQUEST_FILENAME}.webp -f
# Serve WebP image instead. RewriteRule (.+)\.(' . $extensions . ')$ $1.$2.webp [T=image/webp,NC] </IfModule>
<IfModule mod_headers.c> Header append Vary Accept env=REQUEST_image </IfModule>' ); } }
|