Quantcast
Channel: Nginx Forum
Viewing all articles
Browse latest Browse all 53287

Re: два правила работают по отделности но не вместе

$
0
0
Добрый день, сегодня нашел почему именно не отррабатывают правила но try_file насколько я понял в старом nginx не понимают $
фактически проблема была вот в этом


location ~* ^.+\.(htm|html)$ {
root /var/www/$host/web;
if ($host ~* ^(www\.)(.+)) {
set $HBW $2;
root /var/www/$HBW/web;
}
try_files $uri /index.php;
access_log off;
expires 30d;
}
А следовательно если файл фактически отсутствует то передать его статически из php
а в данном локейшене отдается только статика и php попросту не работает
Соответственно если я добавлю сюда

index index.php index.html index.htm;
root /var/www//web/;
proxy_pass http://$host:82;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
То все работает
но html больше всегда отдается через php
А Мне нужно только если файла нет то отдавать как php и А если есть то просто отдавать статику как и всегда.

следовательно я написал следующее условие что при try_files $poteryan
отдавать
location $poteryan
root /var/www//web/;
proxy_pass http://$host:82;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

И по идее насколько я понимаю если файл потерян то отдастся все пойдет напрямую без nginx
что вполне устроит. фактически такие сайты будут работать без кеширования html
Но почему то $potehyan не работает
Подскажите пожалуйста почему ?

nginx очень старый.

Viewing all articles
Browse latest Browse all 53287

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>