![在 nginx 中将根域 301 重定向到 A,同时将特定页面重定向到 B](https://linux22.com/image/700944/%E5%9C%A8%20nginx%20%E4%B8%AD%E5%B0%86%E6%A0%B9%E5%9F%9F%20301%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%20A%EF%BC%8C%E5%90%8C%E6%97%B6%E5%B0%86%E7%89%B9%E5%AE%9A%E9%A1%B5%E9%9D%A2%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%20B.png)
我正在使用 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 重定向更好。