Hello! On Mon, May 20, 2013 at 02:14:02PM -0400, vlad...@binkmail.com wrote:
> Hello, > > Thank you for your example Maxim. This is what I've wrote in my config: > > set $temp "$host:$http_referer"; > > valid_referers none blocked server_names ~\.google\. ~\.yahoo\. ~\.bing\. > ~\.ask\. ~\.live\. ~\.googleusercontent.com\. ; > > if ($invalid_referer){ > set $test A ; > } > > if ($temp ~* "^(.*):http?://\1") { > set $test "${test}B"; > } Just a side note: this statement isn't needed. Both http and https schemes are allowed by a "https?" in the regular expression I provided, "?" makes preceeding character option. > > if ($temp ~* "^(.*):https?://\1") { > set $test "${test}C"; > } > > if ($test = ABC) { > return 444 ; > } > > It is always returning 444 ... what am I doing wrong?! You probably mean to write if ($test = A) { return 444; } instead, as your initial message suggests you want to allow requests where Referer matches Host. -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx