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

我遇到了一个问题,那就是我需要将旧版Flask应用程序中的现有URLredirect或replace为更“虚荣”的URLscheme。

例如:

www.example.org/camp – >确实指向https://example.org/connect/rally_camps/register

虽然我设法做这个工作使用nginxconfiguration(这是使用典型的uwsgi +反向代理nginxconfiguration为serverd):

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

当我打到虚荣url时,我被redirect到非虚荣url(长一个)。 这显然看起来丑陋…我不知道是否有办法告诉nginxredirect,但保持相同的URL或这是需要一些Flask的工作… 301redirect时,用户点击虚荣URL到长URL ? 但是,我认为这将再次改变url…任何想法?

谢谢!

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

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

从nginx文档rewrite

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

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

permanent标志也产生重定向,所以你也不能使用它。