2016-04-04 13 views
0

Ich würde gerne fragen, wie es wäre die Rewrite-Regel für Nginx zum Hinzufügen zu einem variablen Verzeichnis am Ende einer Adresse einen Schrägstrich. Spezifisch möchte ich einen 404 Fehler lösen, der auftritt, wenn ich WooCommerce mit nginx - php-fpm verwende. Der Schrägstrich werden soll, an der Kasse Endpunkt hinzugefügt und es würde dieseNginx Redirect für WooCommerce Checkout Endpoint

http://xxxx.xx/checkout/xxx?key=wc_order_5702b88b72e77 aussieht http://xxxx.xx/checkout/xxx/?key=wc_order_5702b88b72e77

zu neu zu schreiben, wo die „xxx“ nach der/Kasse/die Auftragsnummer, und es ist ein Variable.

Vielen Dank im Voraus.

+1

Sie sind nicht das Gleiche. Wie Sie sehen können, gibt es einen zusätzlichen Schrägstrich nach dem/checkout/xxx, so dass es/checkout/xxx / –

Antwort

0

Ich glaube, Sie so etwas wie dies wünschen würde:

server { 
    # put this before your locations 
    rewrite ^(/checkout/[a-z0-9]+)$ $1/ permanent; 
} 

Ich gehe davon aus, dass die Reihenfolge ID enthält Zahlen und Kleinbuchstaben nur. Sie können dies ändern, indem Sie die Regex ändern. 0-9 Match-Nummern, A-Z Großbuchstaben und a-z Kleinbuchstaben.

Sie können den Neueintrag auch in einen Standortblock einfügen, um ihn genauer zu machen.

location ~ ^/checkout/[a-z0-9]+$ { 
    rewrite ^(/checkout/[a-z0-9]+)$ $1/ permanent; 
} 

Zusätzlich stattdessen die permanent Flagge verwenden, die permanent Anfragen (301-Weiterleitung) umleitet können Sie das Flag last verwenden, die die aktuelle Verarbeitung beendet und die neu geschrieben Anfrage erneut übergeben wird, um die entsprechende Stelle zu finden.