0

私は最近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 でのトラブルシューティングの方法もまだわかりません。

どんな情報でも大歓迎です、ありがとう。

4

1 に答える 1