如何在nginx中redirect单个url?

我正在重新组织url结构。 我需要为特定的url设置redirect规则 – 我正在使用NGINX。

基本上是这样的:

http://example.com/issue1 --> http://example.com/shop/issues/custom_issue_name1 http://example.com/issue2 --> http://example.com/shop/issues/custom_issue_name2 http://example.com/issue3 --> http://example.com/shop/issues/custom_issue_name3 

谢谢!

把它放在你的服务器指令中:

 location /issue { rewrite ^/issue(.*) http://$server_name/shop/issues/custom_issue_name$1 permanent; } 

或复制它:

 location /issue1 { rewrite ^/.* http://$server_name/shop/issues/custom_issue_name1 permanent; } location /issue2 { rewrite ^.* http://$server_name/shop/issues/custom_issue_name2 permanent; } ... 
 location ~ /issue([0-9]+) { return 301 http://example.com/shop/issues/custom_isse_name$1; } 

如果您需要复制多个redirect,则可以考虑使用地图:

 map $uri $redirect_uri { ~^/issue1/?$ http://example.com/shop/issues/custom_isse_name1; ~^/issue2/?$ http://example.com/shop/issues/custom_isse_name2; ~^/issue3/?$ http://example.com/shop/issues/custom_isse_name3; # ... or put these in an included file } location / { try_files $uri $uri/ @redirect-map; } location @redirect-map { if ($redirect_uri) { # redirect if the variable is defined return 301 $redirect_uri; } }