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

D
На сайте с 28.06.2008
Offline
976
1131

Хочу сделать в 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
289
#1

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

add_header X-my-header-nocookie 1;   
Это просто мой личный сайт (https://phpdevs.com/) в моей подписи.
D
На сайте с 28.06.2008
Offline
976
#2

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

D
На сайте с 18.12.2015
Offline
142
#3
Разработка и поддержка высоконагруженных проектов.
D
На сайте с 28.06.2008
Offline
976
#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
183
#5

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

Хостинг FOZZY (http://fozzy.com.ru) / Выслушаю предложения на домены (http://u75.ru/domains-for-sale) / Домены и скрипт для коротких ссылок (http://u75.ru/domains-for-shortcuts)
D
На сайте с 18.12.2015
Offline
142
#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
976
#8

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

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