Я пытаюсь обслуживать некоторые веб-шрифты с помощью сценария PHP, который сообщает nginx о выполнении внутреннего перенаправления с использованием X-Accel-Redirect
.
Поскольку сценарий обслуживает множество типов файлов, я хочу добавить только Access-Control-Allow-Origin
заголовок для шрифтов.
Это работающая конфигурация, которую я пробовал:
location /deploys/ {
internal;
alias /www/deploys/;
expires 1y;
add_header Access-Control-Allow-Origin *;
}
Проблема с этим подходом заключается в том, что ВСЕ файлы теперь содержат Access-Control-Allow-Origin
заголовок. Я хочу, чтобы у моих шрифтов был только этот заголовок.
Итак, я попробовал условное:
location /deploys/ {
internal;
alias /www/deploys/;
expires 1y;
if ($request_filename ~* ^.?/([^/]?)$)
{
set $filename $1;
}
if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){
add_header Access-Control-Allow-Origin *;
}
}
К сожалению, это не работает (и я подозреваю, что это произошло из-за внутреннего перенаправления с использованием X-Accel-Redirect).
Как можно добавить Access-Control-Allow-Oirgin
заголовок для некоторых расширений, использующих X-Accel-Redirect
?
Это выглядит как alias
изменит файл запроса. Не успел скомпилировать и установить echo
модуль для проверки, но использование следующей конфигурации устранило проблему:
location /deploys/ {
internal;
if ($request_filename ~* ^.?/([^/]?)$)
{
set $filename $1;
}
if ($filename ~* ^.*?\.(eot)|(ttf)|(woff)$){
add_header Access-Control-Allow-Origin *;
}
alias /www/deploys/;
expires 1y;
}