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.
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
oder ich kann die cfheader
-Tags verwenden.
Gibt es Gründe, eine Methode gegenüber der anderen zu verwenden?
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%Tags und Links redirect coldfusion cflocation