我遇到了一个问题,那就是我需要将旧版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
标志也产生重定向,所以你也不能使用它。