valid_referers dynamic hostname
Maxim Dounin
mdounin at mdounin.ru
Mon May 20 18:34:01 UTC 2013
Hello!
On Mon, May 20, 2013 at 02:14:02PM -0400, vlad031 at 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
More information about the nginx
mailing list