cflocation vs cfheader für 301 Weiterleitungen

8

Ich "umbenenne" eine existierende Datei für ein Projekt, an dem ich gerade arbeite. Um die Abwärtskompatibilität aufrechtzuerhalten, lasse ich eine cfm-Datei an Ort und Stelle, um die Benutzer auf die neue umzuleiten.

  • buy.cfm: alt
  • shop.cfm: neu

Um alles so sauber wie möglich zu halten, möchte ich die 301 Statuscode-Antwort senden, wenn ein Benutzer versucht, zu buy.cfm zu gehen.

Ich weiß, dass ich cflocation mit dem Attribut statuscode verwenden kann

%Vor%

oder ich kann die cfheader -Tags verwenden.

%Vor%

Gibt es Gründe, eine Methode gegenüber der anderen zu verwenden?

    
Joe C 23.01.2013, 05:00
quelle

2 Antworten

11

Ich denke, sie machen dasselbe, wobei <cflocation> besser lesbar ist

    
Henry 23.01.2013, 05:32
quelle
4

Ich habe dies auf ColdFusion 9 getestet.

Es gibt einen großen Unterschied, und es ist, dass cflocation die Ausführung der Seite stoppt und dann zu der angegebenen Ressource umleitet.

Aus der Adobe ColdFusion-Dokumentation :

  

Stoppt die Ausführung der aktuellen Seite und öffnet eine ColdFusion-Seite oder   HTML-Datei.

Sie müssten das also tun:

%Vor%

um das Äquivalent zu erhalten:

%Vor%

Andernfalls riskieren Sie Probleme, wenn nach dem cfheader-Tag anderer Code ausgeführt wird. Bei der Korrektur von Code, bei dem Weiterleitungen in eine application.cfm-Datei eingefügt wurden - mit cfheader - stieß ich darauf, ohne den Rest der Seitenverarbeitung abzubrechen.

Ich habe auch bemerkt, dass in den Antwortheadern cflocation auch die folgenden Header entsprechend setzt:

%Vor%

Wenn Sie das cfheader-Tag mit Location verwenden, können Sie diese Header bei Bedarf hinzufügen:

%Vor%     
Andy Tyrone 22.03.2017 15:42
quelle

Tags und Links