我正在尝试从 nginx.conf 中的精确文件夹重定向
给定 URL:domain.com/path1/path2/path3
重定向到:sub.domain.com/path1/path2/path3
以下是我目前所掌握的信息:
location ~* ^/path1[\/?]$ {
rewrite ^/(.*) http:sub.domain.com/$1 break;
}
我曾经和它一起工作过
location /path1 {
rewrite ^/(.*) http:sub.domain.com/$1 break;
}
问题在于它还会将 domain.com/path1moretext/someotherpath 这样的页面重定向到 sub.domain.com/path1moretext/someotherpath
这不是我想要的。(因为这是我的第一篇帖子,所以必须删除上面 href 代码中的“//”,抱歉)。
答案1
location / {
rewrite ^\/path1\/(.*)$ http://sub.domain.com/$1 last;
// rest of config for root
}
我来自 Apache 背景,我刚刚开始认真使用 Nginx,我自己也曾努力进行重写,但是,我最近使用了上述方法,没有出现明显问题。
答案2
location = /path1 {
rewrite ^ http://sub.domain.com$uri permanent;
}
location /path1/ {
rewrite ^ http://sub.domain.com$uri?$args permanent;
}
編輯:也读这个有关 last/break/permanent/redirect 的信息。