我正在迁移同一个应用程序,但是迁移到另一个域。
对于旧域名,我的路由为:
http://app.example.com/app/users/sign_in?query=hello
我希望将其重定向到另一个域,省略app
部分:
http://app.newexample.com/users/sign_in?query=hello
我尝试过:
server {
...
location /app {
rewrite ^$scheme://app.sparkon.com/app(/.*)$ $1 last;
}
...
}
我不行。怎么做到这一点?
答案 0 :(得分:2)
大约一年前我遇到过这个问题,并花了很长时间寻找解决方案。我发现并使用了这个:
server {
listen 80;
server_name example.com app.example.com;
rewrite ^/app(.*)$ http://app.newexample.com$1 permanent;
}
server {
listen 80;
server_name app.newexample.com;
# config for primary domain here
}
来自this link。相信他们。
答案 1 :(得分:1)
不要将方案置于重写模式中:
server {
server_name app.example.com;
location /app/ {
rewrite ^/app/(.*)$ http://app.newexample.com/$1;
}
}
BRG。
答案 2 :(得分:1)
我更喜欢这种方法,因为它不需要使用重写,我读到的东西之一是避免过多的好处,因为它需要nginx引擎进行更多的处理。
location ~ /app/(.*) {
return 301 $scheme://app.sparkon.com/$1;
}