2

我面临一个问题,我需要将旧版 Flask 应用程序中的现有 URL 重定向或替换为更“虚荣”的 URL 方案。

例如:

www.example.org/camp -> 真正指向https://example.org/connect/rally_camps/register

虽然我设法使用 nginx 配置来完成这项工作(这是使用典型的 uwsgi + 反向代理 nginx 配置来服务):

location /camp {
       rewrite ^/.* https://example.org/connect/rally_camps/register permanent;
}

当我点击虚 URL 时,我被重定向到非虚 URL(长 URL)。这显然看起来很丑……我不确定是否有办法告诉 nginx 重定向但保持相同的 URL,或者这需要一些 Flask 工作……当用户点击虚 URL 到长 URL 时,301 重定向可能? 但我认为这会再次改变 URL……有什么想法吗?

谢谢!

4

1 回答 1

1

假设您不需要捕获后面的任何内容/camp/,这个 nginx 配置应该可以做到:

location /camp {
       rewrite ^/.* /connect/rally_camps/register ;
}

来自nginx 文档rewrite

如果替换字符串以“http://”、“https://”或“$scheme”开头,则处理停止并将重定向返回给客户端。

换句话说,如果您不想要重定向,则替换字符串不能以这些前缀中的任何一个开头。

permanent标志还会产生重定向,因此您也不能使用它。

于 2017-06-06T12:06:25.493 回答