Primeiro post aqui, espero ter feito bem.
Eu converti todos os png/jpg a partir da minha pasta public_html prestashop para webp e adicionei regras de reescrita ao .htaccess para que o webp fosse servido em vez de png/jpg.
Eu baseei minhas reescritas nas reescritas do prestashop já existentes. Onde eu tinha:
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
Acabei fazendo:
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.webp [L]
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.webp$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.webp [L]
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
O que funciona: eu tenho um URL jpg servindo imagens webp, até agora tudo bem (eu sei que ainda preciso implementar
#RewriteCond %{HTTP_ACCEPT} image/webp
#RewriteCond %{DOCUMENT_ROOT}/$1.webp -f
e também tentar descobrir se devo sair [L]
ou fazer [L,T=image/webp]
ou fazer [T=image/webp,E=REQUEST_image]
, e é por isso que estou lendo documentos relacionados ao apache e rastreando a web sobre reescrever tópicos relacionados, o que é realmente enorme.
Ok, voltando ao tópico principal, vi que estava faltando uma reescrita webp para as imagens que o prestashop armazena na pasta public_html/img.
Então eu tentei o seguinte (e outras variantes):
RewriteRule ^/img/(.+)\.jpe?g$ /img/$1.webp [L]
RewriteRule ^/img/(.+)\.png$ /img/$1.webp [L]
^--- NÃO OK... ainda servindo imagens do tipo jpg/png do diretório img (verifique duas vezes o tipo MIME).
Observe que:
- Toda vez que eu alterava o .htaccess e tentava uma solução, eu limpava o cache do prestashop, por via das dúvidas (apesar de saber que o .htaccess estava sendo lido a cada solicitação).
- Existem imagens webp correspondentes a jpg/png na pasta img.
- perms do arquivo de imagem está correto na pasta img e, de fato, em todas as coisas em public_html
- Na pasta img do prestashop, existe outro .htaccess, que restringe o tipo de arquivos que podem ser servidos desta pasta, e eu já adicionei webp, caso alguém pergunte.
ATUALIZAÇÃO: Conforme solicitado pelo MrWhite, adicionando o .htaccess da pasta img
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
# Apache 2.2
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
<Files ~ "(?i)^.*\.(webp|jpg|jpeg|gif|png|bmp|tiff|svg|pdf|mov|mpeg|mp4|avi|mpg|wma|flv|webm|ico)$">
Allow from all
</Files>
</IfModule>
# Apache 2.4
<IfModule mod_authz_core.c>
Require all denied
<Files ~ "(?i)^.*\.(webp|jpg|jpeg|gif|png|bmp|tiff|svg|pdf|mov|mpeg|mp4|avi|mpg|wma|flv|webm|ico)$">
Require all granted
</Files>
</IfModule>
Por favor, vocês poderiam me ajudar aqui?