Apache 301 Umleitung und Erhaltung von post-Daten
Implementierte ich die SEO-URLs mithilfe von Apache 301 Umleitung auf eine 'redirect.cfm' im Stammverzeichnis der website, behandelt alle URL-building und content-Bereitstellung.
Post-Daten gehen verloren, während eine 301-Weiterleitung.
Nicht in der Lage, eine Lösung zu finden, so weit, haben versucht, ohne post-Methode aus schreibt - worst-case-Szenario, könnten wir die alten geben Sie die URLs für post-Methoden.
Gibt es etwas, das getan werden kann?
Dank
Eigentlich eine andere Lösung, das wäre besser für mich ist, die zum berechnen der Ziel-SEO-URL für das Formular und die Aktion. Extra-Abfrage, aber die URL erhalten und eine 301-Weiterleitung wäre nicht nötig.
InformationsquelleAutor Daniel Cook | 2012-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
POST-Daten wird verworfen umleiten, wie ein client einen GET-request auf der URL angegeben, von der 301. Zeitraum.
Die einzige option ist die Umwandlung der POST-Parameter, um Parameter und Heften Sie an das Ende der URL an Sie weiterleiten zu können. Dies kann nicht erfolgen .htaccess-Datei rewrite.
Ist eine option, um catch-POST-requests an die url umgeleitet zu werden, und übergeben Sie es aus, um eine Seite zu handhaben, umleiten. Sie würde tun müssen, um die Umsetzung der Parameter im code geben Sie dann den redirect-header mit dem parameter angehängt, die neue url, die Art und Weise.
Update: Wie bereits in den Kommentaren zu dieser Antwort, wenn Sie eine Umleitung zu einem anderen URL-Angabe POST-Parameter und die URL auch aufgerufen ohne Parameter (oder die params variabel sind), sollten Sie einen link auf die kanonische URL für die Seite.
Sagen, dass die POST-Formular leitet umgesetzt, um die folgenden GET-Ressource:
Möchten, fügen Sie diesen link aufnehmen, um den head-Abschnitt der Seite:
Damit wäre gewährleistet, dass alle SEO-Wert gegeben würde http://www.example.com/finalpage.php und vermeiden Sie mögliche Probleme mit duplicate content.
Man könnte auch die POST-Variablen in einer Sitzung, wenn die Weiterleitung einer domain-url und Sie nicht wollen, dass Sie in der URL. Vergiss nur nicht, Sie zu zwingen, Spülen Sie die Sitzung vor der Erteilung der Umleitung. Ich glaube nicht, dass GET-Parameter Einfluss auf die SEO-URL jedoch, es wäre nur optisch hässlich.
Danke, vielleicht wird dies funktionieren. Apache sendet alle post-requests an 'redirectPost.cfm', dieser speichert die Formular-Daten in Sitzung.form und leitet die URL (Verlust-post-Daten). Sobald die " umleiten.cfm' in die Hand nimmt, schreibt es alle-Sitzung.Formular Daten wieder in der form Umfang vor Auslieferung der Inhalte.
Doh, gerade Begriffen, dass ein redirect auf 'redirectPost.cfm' verlieren würde, die post-Daten. Vielleicht eine andere Art von Umleitung, 307? hält die post-Daten, werde ich zu schlagen.
Sie nicht umleiten, um Ihre redirect-handler Seite, die Sie gerade dienen, die einen redirect auf die Seite. Keine rediect 30x bewahrt post-Parameter
InformationsquelleAutor Ray
Mit einem
307
sollte genau das, was Sie wollen- Wikipedia
Wie machst du das ?
Ich fügte dies hinzu: RewriteCond %{REQUEST_METHOD} =POST und dann auf der nächsten Zeile: RewriteRule /my-app/(.*)$ /$1 [R=307]
bei mir hat es geklappt, vielen Dank !
Mann, das ist wirklich hat mich gerettet Stunden lauern. Nur indem Sie einige Schlüsselwörter, wer möglicherweise Probleme mit Laravel oder Lumen und seine
Redirect Trailing Slashes If Not A Folder
. Auch diese Antwort ist besonders nützlich, um Menschen die Entwicklung einer API - .InformationsquelleAutor Hashbrown
Mithilfe von 301-Weiterleitungen für die Allgemeine URL-rewriting ist nicht der Weg zu gehen.
Dies ist ein performance-Problem (insbesondere für den mobilen, aber auch im Allgemeinen), denn es verdoppelt sich die Anzahl der Anfragen für Ihre Seite.
Denken über die Verwendung einer URL-rewriting-tool wie Tuckey ' s
URLrewriteFilter
oder apachemod_rewrite
.Was Ray sagte, ist alles wahr, das ist nur eine zusätzliche Bemerkung, die auf Ihrem Allgemeinen Ansatz.
InformationsquelleAutor marc82ch