NGINX: riscrivi solo il percorso specifico (variabile)


0

Voglio riscrivere un URL contenente un percorso variabile specifico, solo per un IP utente specifico.

http://domain.com/variable

Dovrebbe diventare:

http://domain.com/variable/system

Tuttavia, se esiste un altro percorso che segue il percorso / variabile, dovrebbe rimanere invariato. Quindi il seguente URL dovrebbe rimanere lo stesso:

http:/domain.com/variable/something-else

Ho provato il seguente codice

 if ($http_x_forwarded_for = xxx.xxx.x.xx) {         
           rewrite ^/(.*)$ http://domain.com/$1/system redirect;
 }

Tuttavia, quando si esegue questo codice sembra ottenere un ciclo, risultante

http://domain.com/variable/system/system/system/system ....

Capisco cosa non va, ma non so come posso risolvere facilmente / correttamente. Qualsiasi aiuto sarebbe molto apprezzato.

Risposte:


2

Il tuo (.*)cattura anche il /personaggio. È necessario escluderlo per evitare un loop.

Provare:

rewrite ^(/[^/]+)$ $1/system redirect;

Vedi questa utile risorsa sulle espressioni regolari.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.