Объедините правила mod_rewrite для Craft CMS 3 с очисткой кеша - PullRequest
0 голосов
/ 13 октября 2018

Мой проект Craft CMS 3 имеет следующий rewrite_rule в /web .htaccess.

<IfModule mod_rewrite.c>
RewriteEngine On

# Send would-be 404 requests to Craft
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
RewriteRule (.+) index.php?p=$1 [QSA,L]

</IfModule>

Попытка реализовать очистку кэша описана здесь, однако изо всех сил пытается объединить существующие и предложенные rewrite_rules.https://nystudio107.com/blog/simple-static-asset-versioning

Это правило очистки кэша, которое мне нужно добавить.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?\/)*?([a-z\.\-]+)(\d+)\.(bmp|css|cur|gif|ico|jpe?g|js|png|svgz?|webp|webmanifest)$ $1$2$4 [L]
</IfModule>

1 Ответ

0 голосов
/ 11 апреля 2019

Ниже приведен код, который я сейчас использую для решения этой проблемы.Надеюсь, это кому-нибудь поможет.

<ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*?\/)*?([a-z\.\-]+)(\d+)\.(bmp|css|cur|gif|ico|jpe?g|js|png|svgz?|webp|webmanifest)$ $1$2$4 [NC]

    # Send would-be 404 requests to Craft
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,NC]

    RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Port} !=443
    RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
</ifmodule>

# Example to cache images and CSS files
# adjust and extend to your needs
<ifModule mod_headers.c>
  #  images expire after 1 week
  <filesMatch ".(gif|png|jpg|jpeg|ico|pdf|svg|js)$">
    Header set Cache-Control "max-age=604800"
  </filesMatch>
  # CSS expires after 1 week
  <filesMatch ".(css|js|woff2)$">
    Header set Cache-Control "max-age=604800"
  </filesMatch>
</ifModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...