![Nginx 将特定路径重写为不同的域](https://linux22.com/image/641583/Nginx%20%E5%B0%86%E7%89%B9%E5%AE%9A%E8%B7%AF%E5%BE%84%E9%87%8D%E5%86%99%E4%B8%BA%E4%B8%8D%E5%90%8C%E7%9A%84%E5%9F%9F.png)
我希望做的是重写如下 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.com
和sso.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。