Передать условие от Nginx к PHP

D
На сайте с 28.06.2008
Offline
1101
1137

Хочу сделать в Nginx условие с map типа такого

Это проcто пример, не зацикливайтесь на нем

map "$whitelist:$cookies" $nocookies {
default 0;
"0:0" 1;
}

и чтобы дальше в ПХП можно было использовать в условиях переменную $nocookies

if ($nocookies==true) {
***********
}else {
***********
}

Как правильно прокинуть эту переменную? (у меня php-fm).

И как потом в пхп правильно с тру как выше или через isset() ?

S
На сайте с 23.05.2004
Offline
316
#1

В if запулить хедер и проверять его в пхп далее.

add_header X-my-header-nocookie 1;   
Это просто подпись.
D
На сайте с 28.06.2008
Offline
1101
#2

Stek, не совсем понял вашу мысль - можно пример?

danforth
На сайте с 18.12.2015
Offline
153
#3
Junior Web Developer
D
На сайте с 28.06.2008
Offline
1101
#4

danforth, прописал ради теста

fastcgi_param NONAME $noname;

при тестировании конфигурации получаю ошибку

nginx: [emerg] unknown "noname" variable
nginx: configuration file /etc/nginx/nginx.conf test failed
M
На сайте с 04.12.2013
Offline
223
#5

Нет $noname, вот и получаете ошибку. Пропишите нужное значение вместо этой переменной.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
danforth
На сайте с 18.12.2015
Offline
153
#6

Ну правильно, выше сделайте set $noname dram;

Не сочтите за грубость, но во-первых, учитесь читать логи, во-вторых, учитесь гуглить (желательно на английском языке). Вы же на форуме поисковых систем. Это очень полезные навыки, которые экономят время.

U
На сайте с 20.04.2017
Offline
16
#7
Dram:
Хочу сделать в Nginx условие с map типа такого

Это проcто пример, не зацикливайтесь на нем

и чтобы дальше в ПХП можно было использовать в условиях переменную $nocookies


Как правильно прокинуть эту переменную? (у меня php-fm).
И как потом в пхп правильно с тру как выше или через isset() ?

В location ~ \.php$ {

добавляем переменную:

	fastcgi_param NO_COOKIES yes;

В скрипте проверяем

if (getenv('NO_COOKIES') == 'yes') {

Соответственно, точно так же можно сделать if в location или location в location.

D
На сайте с 28.06.2008
Offline
1101
#8

Всем спс - все получилось.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий