私は最近nginxに切り替えましたが、かなり新しいので、これが以前に広範にカバーされていた場合はご容赦ください.
私がやろうとしているのは、送信された受け入れヘッダーに基づいてユーザー要求を書き直すことです。
具体的には、accpet ヘッダーが image/gif または image/webp の場合は画像を提供し、そうでない場合は URL の .gif を連結して提供します。
私のApache構成を聞いていますが、再びnginxを使用していて、それを変換する方法を学ぼうとしています:
RewriteCond %{HTTP_ACCEPT} ^image/gif [NC]
RewriteCond %{HTTP_ACCEPT} ^image/webp [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com(.*)$ [NC]
RewriteRule ^i/(.*)\.gif http://example.com/i/$1 [R=302,L]
ご覧のとおり、上記の htaccess ファイルは魅力的に機能しますが、nginx は完全に異なっているようです。
私はいくつかの読書をして、これを思いつきました:
map $http_accept $webp_suffix {
default "";
"~*webp" ".webp";
}
サーバーブロック内で次のように
location ~* ^/i/.+\.(gif)$ {
root /storage-pool/example.com/public;
add_header Vary Accept;
try_files $uri$webp_suffix $uri =404;
}
悲しいことに、これは機能せず、nginx でのトラブルシューティングの方法もまだわかりません。
どんな情報でも大歓迎です、ありがとう。