Rewriting request to www.domain.com to domain.com

António P. P. Almeida appa at perusio.net
Mon Jan 31 16:11:58 MSK 2011


On 31 Jan 2011 10h53 WET, zblut at cerego.com wrote:

Your rewrite doesn't work because you're not passing along the request
URI available in the $request_uri variable.

Use 2 server blocks:

server {
    ## This is to avoid the spurious if for sub-domain name
    ## rewriting. See http://wiki.nginx.org/Pitfalls#Server_Name.
    listen 80;
    
    server_name www.foobar.com;
    rewrite ^ $scheme://foobar.com$request_uri? permanent;
} # server domain rewrite.


     server {
         listen       80;

         charset off;
         server_name  www.foobar.com;

         access_log  /var/log/nginx/iknow_access.log cerelog;

         location / {
        
           (...)
         }
 
         location /widgets/ {
            return 410;
         }
         
         location /banners/ {
            return 410;
         }
        
         error_page  404 410          /404.html;
         
         location = /404.html {
            root /data/foobar/current/public;
         }
     }



> I want it to rewrite all requests to the www.foobar.com to the flat 
> level domain of foobar.com.
>
> I.e. www.foobar.com/awesomelink should be foobar.com
>
> But, I am getting foobar.com/awesomelink instead.
>
> Also, the 410 responses are redirecting just like the location /
> This is with Nginx 0.7.65
>
> Any ideas what I am doing wrong?

Cf. above.

--- appa




More information about the nginx mailing list