2016-08-02 42 views
0

我目前有各种重定向的URL网页以下位置块:NGINX:不赞成使用重定向的URL列表主页

location ~ ^/events/?(.*)$ { 
    return 301 /; 
} 

location ~ ^/news/?(.*)$ { 
    return 301 /; 
} 

location ~ ^/about/?(.*)$ { 
    return 301 /; 
} 

... 

从本质上讲,所有/events, /events/, /news, /news/, /about, /about/重定向到/

有没有更干净的方式做到这一点,不是很湿?

回答

1

你设置的方式非常好,它已经很干净,因为你可以看到你在做什么。

如果你真的想把它当作一个location块,这会做的伎俩:

location ~ ^/(events|news|about)?/.*$ { 
    return 301 /; 
} 

的解释:

这里,这个位置将在括号匹配任何URI,它是可选的( ?)为它包含尾部斜线。您不需要(.*),因为您不以任何方式将这部分字符串用作后向引用,因此您不需要存储它。 (当然你也可以,也没关系。)

+0

美丽,非常感谢! – robinnnnn

+0

这是一种乐趣,很高兴我可以帮助:) –