
travis.crowder at spechal
Jul 27, 2013, 9:15 PM
Post #9 of 13
(133 views)
Permalink
|
|
Re: Stop users accessing website via IP address
[In reply to]
|
|
I guess I am confused as to why you need the rewrite. sub vcl_recv { if(req.http.Host ~ "8.8.8.8") { error 750; } } sub vcl_error { if(obj.status == 750) { set obj.http.Location = "http://google.com/login"; set obj.status = 302; return (deliver); } } On Jul 27, 2013, at 10:03 PM, Travis Crowder <travis.crowder [at] spechal> wrote: > Your regular expression is malformed and you don't do any capturing or replacement in the regsub function so I am not sure what you're trying to accomplish there. > > Can you elaborate on what you're trying set this header's value to? > > -Travis Crowder > > > On Jul 27, 2013, at 9:38 PM, Puneet <puneet.arora [at] insticator> wrote: > >> HI Travis, >> >> Thanks for the reply. >> I think that should work. >> >> Just one question. >> In sub vcl_error() should I also change the >> >> set req.http.X-REDIRURL = regsub(req.url,"https?://[^/$]+", "http://mywebsite.com"); >> TO : à >> set req.http.X-REDIRURL = regsub(req.http.host,"https?://[^/$]+", "http://mywebsite.com"); >> ? >> >> Because when replace req.url with req.http.host, It again stops working. >> And If I don’t do it, the bowser gives an error “Too many redirects” >> >> Thanks >> Puneet >> >> From: Travis Crowder [mailto:travis.crowder [at] spechal] >> Sent: Saturday, July 27, 2013 7:53 PM >> To: Puneet >> Cc: varnish-misc [at] varnish-cache >> Subject: Re: Stop users accessing website via IP address >> >> Check against req.http.Host >> >> In vcl_recv: >> >> if(req.http.Host ~ "8.8.8.8") { >> error 750; >> } >> >> -Travis Crowder >> >> On Jul 27, 2013, at 3:48 PM, Puneet <puneet.arora [at] insticator> wrote: >> >> >> Hi all, >> >> I want to stop the users accessing my website via IP address. >> I am using varnish as cache. >> I have the following code in place but it is not working. >> >> In vcl_recv() { >> if(req.url ~ "XX.XX.XXX.XXX") { >> error 750 "Moved Permanently"; >> } } >> >> And in vcl_error() >> sub vcl_error { >> if (obj.status == 750) { >> set req.http.X-REDIRURL = regsub(req.url,"https?://[^/$]+", "http://mywebsite.com"); >> set obj.http.Location = req.http.X-REDIRURL; >> set obj.status = 301; >> unset req.http.X-REDIRURL; >> return(deliver); >> } >> >> But this does not redirect the user to the website, instead it delivers the page. >> Can anyone tell what I am missing? >> >> Thanks >> Puneet >> _______________________________________________ >> varnish-misc mailing list >> varnish-misc [at] varnish-cache >> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc > > _______________________________________________ > varnish-misc mailing list > varnish-misc [at] varnish-cache > https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
|