56
votes

I use NGINX in my dedicated server.

I've a question about the return and rewrite 301.


Rewrite 301:

rewrite ^ http://xxx.xxxxx.net/xx-xxx/$request_uri? permanent;

Return 301:

location ~ redirect-this/?$ {
    return 301 http://xxx.xxxxx.net/xx-xxx/redirect-this$1;
}

All redirects work correctly. But..

Which is the most effective method to make a 301 redirect?

I've more than 200 url to redirect. So, what you recommend?

1
This question is a little bit confusing since you are comparing rewrite ^ (match anything) with location ~ redirect-this/?$ which matches a specific regex. You should reformulate it. But anyway a good question... I'm curious which one is faster rewrite ^/test or location ^/test with if.czerasz

1 Answers

43
votes

As stated in the nginx pitfalls you should use server blocks and return statements as they're way faster than evaluating RegEx via location blocks.

Since you're forcing the rewrite rule to send a 301 there's no difference when it comes to SEO, btw..