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.

È stato utile?

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
scroll top