Как перенаправить один url в nginx?
Я в процессе реорганизации структуры url. Мне нужно настроить правила перенаправления для конкретных URL - адресов-я использую 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
спасибо!
3 ответа:
поместите это в директиву сервера:
location /issue { rewrite ^/issue(.*) http://$server_name/shop/issues/custom_issue_name 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; } ...
Если вам нужно дублировать более нескольких перенаправлений, вы можете рассмотреть возможность использования карты:
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; } }