Коллеги, добрый день!
Столкнулся с необходимостью отдавать файлы js и jpg по прямой ссылке не в зависимости от протокола (https/https).
Редирект https -> http настроен следующим образом:
server {
# listen http and https
listen 80;
listen 443;server_name site.ru www.site.ru;
...
if ($host != 'site.ru' ) { rewrite ^(.*)$ http://site.ru$1 permanent; } # unknow hosts
if ($server_port != 80 ) { rewrite ^(.*)$ http://site.rum$1 permanent; } # https -> http
rewrite ^/(.*)/$ /$1 permanent; # allКоллеги, пожалуйста, как можно осуществить отдачу файлов js и jpg по прямой ссылке не в зависимости от протокола.
как только у вас возникает желание написать в конфиге nginx условие if, знайте, вы делаете что-то неправильно.Прочитайте документацию по директивам location и rewrite.
> как только у вас возникает желание написать в конфиге nginx условие if,
> знайте, вы делаете что-то неправильно.
> Прочитайте документацию по директивам location и rewrite.Спасибо. Обязательно почитаю, но пока решил таким (multiple conditions https://gist.github.com/jrom/1760790)способом:
# rewrites
if ($host != 'site.ru' ) { rewrite ^(.*)$ http://site.ru$1 permanent; } # unknow hosts# https -> http, but not js and images
if ($server_port != 80) {
set $redir Y;
}
if ($uri ~* \.(js|gif|png|jpg)$) {
set $redir N;
}
if ($redir = Y) {
rewrite ^(.*)$ http://site.ru$1 permanent;
}
Все файлы с указанным расширением доступны по запрашиваемому протоколу. Может такой костыль кому-нбдь пригодится.