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 <[email protected]> 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 <[email protected]> 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:[email protected]] 
>> Sent: Saturday, July 27, 2013 7:53 PM
>> To: Puneet
>> Cc: [email protected]
>> 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 <[email protected]> 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
>> [email protected]
>> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
> 
> _______________________________________________
> varnish-misc mailing list
> [email protected]
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

_______________________________________________
varnish-misc mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to