Nginx 301redirect一个URL

我正在尝试redirect一个特定的URL,如:

http://www.domain.com/cadena-de-metas

我正在通过我的configuration文件在/ sites-available /

if ( $request_filename ~ cadena-de-metas/ ) { rewrite ^ https://some-other-url.com? permanent; } 

这工作,但不幸的是它redirect以及这个url:

http://www.domain.com/uploads/descarga-cadena-de-metas.jpg

我怎样才能防止这个?

避免使用if语句,它们对于性能不是很好。 试试像这样:〜*表示不区分大小写的正则expression式匹配,正则expression式可以是文字。 如果它不起作用,让我知道,它只需要一个小小的调整 – 不知道你是否需要语音标记

 server { server_name example.com www.example.com; location ~* "^/cadena-de-metas" { return 301 https://some-other-url.com; } } 

如果您希望自动调整为http / https,您的回报可以交替使用

 return 301 $scheme://some-other-url.com; 

如果你想redirect到另一个位置在同一台服务器上,这将是这样的

 return 301 $scheme://$host/subdirectory; 

注意 :所有使用302redirect的testing,因为它们没有被caching,当你对如何设置感到满意时,改为301redirect。

你做不同的通用redirect从非www到www的,但你没有问,所以我不会发布。

除了redirect之外,您还可以执行proxy_pass,从另一个位置获取内容并将其显示在该URL上。