Nginx 将特定路径重写为不同的域

Nginx 将特定路径重写为不同的域

我希望做的是重写如下 URL:

wiki.mydomain.com/simplesaml/module.php/core

像这样:

sso.mydomain.com/simplesaml/module.php/core

所有其他 URL(例如wiki.mydomain.com/index.php/Article等)应继续从 提供服务wiki.mydomain.com。域wiki.mydomain.comsso.mydomain.com都由 nginx 本身提供服务并配置为虚拟主机。这是我到目前为止想出的重写规则,但它不起作用:

rewrite ^ http://wiki.nomadly.in/simplesaml/(*) http://sso.nomadly.in/simplesaml/$1 break;

任何帮助将不胜感激。

答案1

如果你只想重定向wiki.mydomain.com/simplesaml/modules.php/core。你可以使用这个:

rewrite /simplesaml/module.php/core http://sso.mydomain.com/simplesaml/module.php/core permanent;

如果您想要将 /simplesaml 下的所有内容重定向到 下的相同 URI sso.mydomain.com,请使用以下命令:

location /simplesaml {
    rewrite ^ http://sso.mydomain.com$request_uri permanent;
}

最重要的部分是permanent重写行上的定义,它导致 nginx 将301重定向发送到新的 URL。

相关内容