Come faccio a convertire mod_rewrite (opzione QSA) in equivalente Nginx?
-
07-07-2019 - |
Domanda
Sto cercando di convertire la seguente mod_rewrite
nella equivalente Nginx :
RewriteRule ^foo/(.*)$ /bar/index.php?title=$1 [PT,L,QSA]
RewriteRule ^foo/*$ /bar/index.php [L,QSA]
Finora ho:
rewrite ^foo/(.*)$ /bar/index.php?title=$1&$query_string last;
rewrite ^foo/?$ /bar/index.php?$query_string break;
Il problema è (penso!) che la stringa della query non viene aggiunta. Non ho trovato un modo per trasferire l'argomento QSA
su Nginx.
Soluzione 2
Queste regole di riscrittura hanno fatto funzionare gli script:
rewrite ^/foo/([^?]*)(?:\?(.*))? /bar/index.php?title=$1&$2;
rewrite ^/foo /bar/index.php;
Altri suggerimenti
QSA è automatico in NGINX.
Se non lo vuoi, aggiungi? fino alla fine della nuova posizione
riscrivi ^ / foo /bar/index.php? ultima;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow