2011-01-12 6 views

risposta

5
location ^~ /test/ { 
    internal; 
} 
+8

[ 'internal' (dal HttpCore' modulo')] (http://wiki.nginx.org/HttpCoreModule#internal) indica la posizione come interni al server. Restituisce 404 per richieste esterne ma può ancora essere il bersaglio di reindirizzamenti interni, riscritture, pagine di errore, ecc. –

70
location /test/ { 
    return 404; 
} 
+4

['return' è parte di' HttpRewriteModule'] (http://wiki.nginx.org/HttpRewriteModule# ritorno). Rende la sua posizione padre sempre restituisce lo stato dato, che è esattamente ciò che vuole il richiedente. –

16

bisogno di aggiungere "^ ~" per dare a questo incontro una priorità maggiore rispetto blocchi posizione regex.

location ^~ /test/ { 
    return 404; 
} 

Altrimenti sarete in una situazione difficile. Ad esempio, se si dispone di un altro blocco posizione, ad esempio

location ~ \.php$ { 
    ... 
} 

e qualcuno invia una richiesta al http://your_domain.com/test/bad.php, quel blocco posizione regex sarà scelto da nginx per soddisfare la richiesta. Ovviamente non è quello che vuoi. Quindi assicurati di mettere "^ ~" in quel blocco di posizione!

Riferimento: http://wiki.nginx.org/HttpCoreModule#location

Problemi correlati