Redirect Nginx重定向仅更改域后URL的第一部分

Redirect Nginx重定向仅更改域后URL的第一部分,redirect,nginx,Redirect,Nginx,我只想更改一组页面上url的第一部分 例如 到 在本例中,包括此项在内的所有内容都是动态的 我想这会管用的 location ~* ^/change/(.*)$ {rewrite ^ http://domain.com/changed/$1 permanent; break;} 但是Regex捕获变量与重写块本身无关 location ~* ^/change/(.*)$ { rewrite ^/change/(.*)$ http://example.com/changed/$1 pe

我只想更改一组页面上url的第一部分

例如

在本例中,包括此项在内的所有内容都是动态的

我想这会管用的

location ~* ^/change/(.*)$ {rewrite ^ http://domain.com/changed/$1 permanent; break;}

但是Regex捕获变量与重写块本身无关

location ~* ^/change/(.*)$ {
     rewrite ^/change/(.*)$ http://example.com/changed/$1 permanent; 
     break;
}

您可以看到示例:

我使用return 301实现了它,但仍然想知道为什么它不能与rewrite一起工作。感谢您的澄清。return301语法更具可读性,所以我会坚持使用它。你知道这两种方法都有什么好处吗?我认为如果你想通知搜索引擎和其他机器人永久更改url,你应该使用301重定向。若要使重写过程不可见,则应删除永久指令。
location ~* ^/change/(.*)$ {rewrite ^ http://domain.com/changed/$1 permanent; break;}
location ~* ^/change/(.*)$ {
     rewrite ^/change/(.*)$ http://example.com/changed/$1 permanent; 
     break;
}