Wie leite ich auf das www um? Version meiner Flask-Site auf Heroku?

9

Ich habe eine Python Flask App auf Heroku (Cedar Stack) mit zwei benutzerdefinierten Domains (eine mit und ohne die www-Subdomain). Ich möchte alle eingehenden Anfragen an das www umleiten. Version der angeforderten Ressource (die Umkehrung von diese Frage ). Ich denke, ich brauche eine WSGI-Middleware dafür, aber ich kann kein gutes Beispiel finden.

Wie mache ich das?

    
John Sheehan 19.03.2012, 06:55
quelle

4 Antworten

13

Eine einfachere Lösung als das Erstellen einer separaten Heroku-App wäre eine before_request -Funktion.

%Vor%

Dadurch werden alle Nicht-WWW-Anforderungen mit einer "HTTP 301 Moved Permanently" -Antwort an www umgeleitet.

    
Danilo Bargen 09.06.2012, 21:55
quelle
3

Laut Heroku Docs haben Sie die richtige Idee, die www Subdomain (zB www.foo.com) vs. apex domain (zB foo.com) zu verwenden. Ihr Vorschlag dafür ist eine DNS-Layer-Umleitung:

Um zu zitieren:

  

Subdomain-Umleitung

     

Subdomain Redirection führt zu einer 301 permanenten Weiterleitung zum   angegebene Subdomain für alle Anfragen an die Apex-Domain, also alle aktuellen   und zukünftige Anfragen werden korrekt weitergeleitet und der vollständige www-Hostname ist   im Feld Standort des Benutzers angezeigt.

     

Fast alle DNS-Anbieter bieten Domain-Umleitungsdienste an - manchmal   auch Domänenweiterleitung genannt. DNSimple bietet eine praktische URL   Umleitung gesehen hier Umleitung von der heroku-sendpoint.com Apex   Domain zur Subdomain www.heroku-sendpoint.com.

Quelle: Ссылка

Hoffe das hilft!

    
Troy Howard 19.03.2012 17:49
quelle
1

Ein möglicher Ansatz wäre das Hinzufügen einer Funktion zum Anhören von request_started die entsprechende Umleitung.

  

Dieses Signal wird gesendet, bevor eine Anfrageverarbeitung gestartet wird, aber wenn die   Der Anfragekontext wurde eingerichtet. Weil der Anfragekontext schon ist   gebunden, kann der Teilnehmer auf die Anfrage mit dem Standard global zugreifen   Proxies wie Anfrage.

    
Burhan Khalid 19.03.2012 07:24
quelle
0

Am Ende habe ich eine zweite Heroku-App erstellt, die den nicht-www-Hostnamen diesem zugewiesen hat und eine Flask-Route verwendet, um auf die WWW-Version umzuleiten, wobei der Pfad intakt bleibt.

    
John Sheehan 30.04.2012 22:23
quelle

Tags und Links