如何在传统的Flask应用程序中实现虚URL?

时间:2016-12-24 19:46:27

标签: python url redirect nginx vanity-url

我遇到了一个问题,我需要将旧版Flask应用中的现有网址重定向或替换为更多"虚荣心"网址方案。

例如:

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;
}

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

谢谢!

1 个答案:

答案 0 :(得分:1)

假设你不需要捕获/camp/之后的任何内容,这个nginx配置应该这样做:

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

来自nginx docs for rewrite

  

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

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

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