首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Nginx中重定向单个URL?

如何在Nginx中重定向单个URL?
EN

Stack Overflow用户
提问于 2013-08-04 05:59:40
回答 3查看 232.7K关注 0票数 121

我正在重新组织URL结构。我需要为特定的URL设置重定向规则-我使用的是Nginx。

基本上是这样的:

代码语言:javascript
复制
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

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-04 07:06:57

将此放入您的服务器指令中:

代码语言:javascript
复制
location /issue {
   rewrite ^/issue(.*) http://$server_name/shop/issues/custom_issue_name$1 permanent;
 }

或者复制它:

代码语言:javascript
复制
location /issue1 {
   rewrite ^/.* http://$server_name/shop/issues/custom_issue_name1 permanent;
}
location /issue2 {
   rewrite ^.* http://$server_name/shop/issues/custom_issue_name2 permanent;
}
 ...
票数 129
EN

Stack Overflow用户

发布于 2013-08-04 09:57:01

代码语言:javascript
复制
location ~ /issue([0-9]+) {
    return 301 http://example.com/shop/issues/custom_isse_name$1;
}
票数 143
EN

Stack Overflow用户

发布于 2014-12-10 00:04:24

如果您需要复制多个重定向,则可以考虑使用map:

代码语言:javascript
复制
# map is outside of server block
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;
    }
}
票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18037716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档