2014-09-15 5 views
0

gunicorn + nginx 아래에 배치 된 Flask에 문제가 있습니다. 내 웹 사이트는 역방향 프록시가되어 URL : http://example.com/identity/으로 이동합니다.Flask : double slash in urls

나는 (예 : "인덱스") 내 플라스크 응용 프로그램에서 각 하나에 대한 여러 URL이 :

  • 내가 (후행 슬래시) http://example.com/identity/index/에 액세스하려고 그것은 URL
  • 바로 간다
  • http://example.com/identity/index (슬래시없이)에 액세스하려고 시도하면 http://example.com/identity//index/? (이중 슬래시와 물음표가 있음)으로 이동합니다.

플라스크에서 index에 연결된 경로는 @route('/identity/index')입니다. 내 문제는 내 생각에 "정상적인"플라스크 행동이지만 슬래시없이 index에 액세스하고 내 정상 URL을 갖고 싶습니다. 예를 들어 redirect(url_for('index'))을 사용하는 리디렉션과 동일합니다.

+0

당신이 보는 행동은 플라스크가하는 일이 아니고,'/'로 끝나지 않는 경로에서는 일어나지 않습니다. 이것은 nginx 구성, gunicorn 또는 사용중인 일부 미들웨어입니다. –

+0

빠른 답변과 서식을 보내 주셔서 감사합니다. 나는 어떤 미들웨어도 사용하지 않으므로 내 nginx 설정을 살펴볼 것이다. gunicorn이 내 URL을 수정하지 않았 으면 좋겠어. – Jerome

답변

0

실제로 내 Nginx 구성에 문제가있어서 외부 서버에서 https를 실행하고 서버간에 http를 사용하여 실행하고있었습니다. 그래서이 스 니펫을 사용했습니다 : http://flask.pocoo.org/snippets/35/ 내 응용 프로그램에서 https URL을 강제로 사용하면 이제 작동합니다!