igroykt Wrote: ------------------------------------------------------- > Ясно. Ну деваться уже некуда. Вроде решил вложенными if-ами. > В итоге получилась следующая бяка: > Если в строке есть android но нет намека на kindlefire... > if ($http_user_agent ~* "(android)") { > set $android A; > } > if ($http_user_agent !~* > "(kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftb > wi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi)") { > set $android "${android}B"; > } > if ($android = AB) { > set $android_rewrite perform; > } > > Ну и наоборот > if ($http_user_agent ~* "(android)") { > set $amazon A; > } > if ($http_user_agent ~* > "(kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftb > wi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi)") { > set $amazon "${amazon}B"; > } > if ($amazon = AB) { > set $amazon_rewrite perform; > } > Вообще наверное лучше искомые слова для kindlefire вынести в > переменную чтобы в нескольких местах не подправлять если выйдут новые > девайсы.
Как бы теперь запихнуть эти kftt и т.д. в одну переменную? чтобы получилось if ($http_user_agent ~* $kindle) Мап не сработал: map $host $kindlefire { default kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftbwi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi; } и сет тоже не проканал: set $kindlefire kftt|kfot|kfjwa|kfjwi|kfsowi|kfthwa|kfthwi|kfapwa|kfapwi|kfaswi|kftbwi|kfmewi|kffowi|kfsawa|kfsawi|kfarwi; if ($http_user_agent ~* "($kindlefire)") { set $amazon "${amazon}B"; } Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264075,264099#msg-264099 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru