如何在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; } }