PluginProbe
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF / trunk
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF vtrunk
2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.9 2.2.8 trunk 1.10 1.3.3 1.3.4 1.3.5 1.3.5.1 1.3.5.2 1.3.6 1.3.6.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.5 All 103 releases
← All changes | classes/Webp/RewriteRules/Nginx.php +43 -23 1.10 → trunk View file →
@@ -1,23 +1,23 @@
1 1 <?php
2 +declare(strict_types=1);
3 +
2 4 namespace Imagify\Webp\RewriteRules;
3 5
4 -defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
6 +use Imagify\WriteFile\AbstractNginxDirConfFile;
5 7
6 8 /**
7 9 * Add and remove rewrite rules to the imagify.conf file to display WebP images on the site.
8 10 *
9 - * @since 1.9
10 - * @author Grégory Viguier
11 + * @since 1.9
11 12 */
12 -class Nginx extends \Imagify\WriteFile\AbstractNginxDirConfFile {
13 +class Nginx extends AbstractNginxDirConfFile {
13 14
14 15 /**
15 16 * Name of the tag used as block delemiter.
16 17 *
17 - * @var string
18 - * @since 1.9
19 - * @author Grégory Viguier
18 + * @var string
19 + * @since 1.9
20 20 */
21 21 const TAG_NAME = 'Imagify: rewrite rules for webp';
22 22
23 23 /**
@@ -22,31 +22,51 @@
22 22
23 23 /**
24 24 * Get unfiltered new contents to write into the file.
25 25 *
26 - * @since 1.9
27 - * @access protected
28 - * @author Grégory Viguier
26 + * @since 1.9
29 27 *
30 28 * @return string
31 29 */
32 30 protected function get_raw_new_contents() {
33 - $extensions = $this->get_extensions_pattern();
31 + $extensions = $this->get_extensions_pattern() . '|avif';
34 32 $home_root = wp_parse_url( home_url( '/' ) );
35 33 $home_root = $home_root['path'];
36 34
37 - return trim( '
35 + return trim(
36 + '
38 37 location ~* ^(' . $home_root . '.+)\.(' . $extensions . ')$ {
39 - add_header Vary Accept;
38 + add_header Vary Accept;
40 39
41 - if ($http_accept ~* "webp"){
42 - set $imwebp A;
43 - }
44 - if (-f $request_filename.webp) {
45 - set $imwebp "${imwebp}B";
46 - }
47 - if ($imwebp = AB) {
48 - rewrite ^(.*) $1.webp;
49 - }
50 -}' );
40 + set $canavif 1;
41 +
42 + if ($http_accept !~* "avif"){
43 + set $canavif 0;
44 + }
45 +
46 + if (!-f $request_filename.avif) {
47 + set $canavif 0;
48 +
49 + }
50 + if ($canavif = 1){
51 + rewrite ^(.*) $1.avif;
52 + break;
53 + }
54 +
55 + set $canwebp 1;
56 +
57 + if ($http_accept !~* "webp"){
58 + set $canwebp 0;
59 + }
60 +
61 + if (!-f $request_filename.webp) {
62 + set $canwebp 0;
63 +
64 + }
65 + if ($canwebp = 1){
66 + rewrite ^(.*) $1.webp;
67 + break;
68 + }
69 +}'
70 + );
51 71 }
52 72 }