在 nginx 中将根域 301 重定向到 A,同时将特定页面重定向到 B

在 nginx 中将根域 301 重定向到 A,同时将特定页面重定向到 B

我正在使用 nginx,并且有一个重定向到特定 URL 的域,如下所示:

server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 http://example.net/page/example;
}

效果很好,但现在我想添加额外的 URL 重定向。我还想example.com/coolstory重定向到http://bro.example.net/dumb/bloated?=address

因此,总而言之,我想要:

example.com -> http://example.net/page/example
example.com/coolstory -> http://bro.example.net/dumb/bloated?=address

我尝试将其添加到上面的服务器指令中,但它被忽略了。

location /coolstory([0-9]+) {
return 301 bro.example.net/dumb/bloated?=address;
}

答案1

虽然花了点功夫,但我自己终于弄明白了。

server {
     listen 80;
     listen [::]:80;
     server_name example.com www.example.com;
     location /index.html {
          return 301 http://example.net/page/example;
     }
     location /coolstory {
          return 301 http://bro.example.net/dumb/bloated?=address;
     }
}

/index.html我删除了服务器级 301 重定向,并使用来引用根域/,而不是 ,但这不起作用。当然,index.html 实际上并不存在,因此感觉不太理想,但它确实有效,而且比 html 重定向更好。

相关内容