【问题标题】:How to implement vanity URLs in a legacy Flask app?如何在旧版 Flask 应用程序中实现虚 URL?
【发布时间】:2017-05-10 00:59:26
【问题描述】:

我遇到了一个问题,我需要将旧版 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...有什么想法吗?

谢谢!

【问题讨论】:

    标签: python url redirect nginx vanity-url


    【解决方案1】:

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

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

    来自nginx docs for rewrite

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

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

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

    【讨论】:

    • 我忘了说我很久以前就这样修过了 :D 但谢谢@Dag,我会把它标记为正确答案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 2021-08-24
    相关资源
    最近更新 更多