Riscrivere una sottodirectory per root su nginx

diciamo che ho un sito http://domain/ e ho messo alcuni file in una sottodirectory /html_root/app/ ed uso la seguente regola di riscrittura per riscrivere questa cartella nella mia radice:

 location / { root /html_root; index index.php index.html index.htm; # Map http://domain/x to /app/x unless there is ax in the web root. if (!-f $request_filename){ set $to_root 1$to_root; } if (!-d $request_filename){ set $to_root 2$to_root; } if ($uri !~ "app/"){ set $to_root 3$to_root; } if ($to_root = "321"){ rewrite ^/(.+)$ /app/$1; } # Map http://domain/ to /app/. rewrite ^/$ /app/ last; } 

So che questo non è un modo intelligente perchè ho un'altra sottodirectory /html_root/blog/ e voglio che sia accessibile da http://domain/blog/ .

  • passeggero (mod_rails) non riesce a iniziare il padrino di marionette sotto nginx
  • nginx equivalente a Apache MultiViews?
  • nginx HTTPS che serve con la stessa configuration di HTTP
  • Nginx Non Logging https /: 443 Richieste
  • Nginx + PHP-FPM produce 502 gateway difettoso invece di errore irreversibile?
  • Nginx per Windows o Linux - che è consigliato per un cluster Redis e quali sono le configurazioni consigliate?
  • Il mio problema è che la regola di riscrittura sopra funziona correttamente ma ha ancora alcuni problemi: se accedo

    http://domain/a-simple-page/ (Viene riscritto da http://domain/app/a-simple-page/ )

    funziona bene, ma se accedo

    http://domain/a-simple-page (senza trascinare traccia), reindirizza all'indirizzo originale:

    http://domain/app/a-simple-page/ ,

    Qualunque modo per redirect l'URL senza trailing-slash seguire la mia regola?

  • nginx non serve correttamente i sottodomini
  • nginx + php-fpm - where sono i miei $ _GET params?
  • Nginx Cache-Control
  • Configurazione di networking per VMware w / vMotion e un singolo interruttore
  • Come trovare dynamicmente il nome e il tipo di interfacce collegate a un sistema
  • Cisco ASA Config per PCI Compliant Office
  • One Solution collect form web for “Riscrivere una sottodirectory per root su nginx”

    Caso classico di seguire un tutorial sbagliato in giù a destra invece di leggere la wiki suggerisco di leggere le funzionalità che dovresti usare (come la posizione e i try_files) così come il mio primer Nginx mentre manchi completamente le basi di Nginx.

    Ho fatto un tentativo di scrivere quello che vuoi in un formato adeguato, ma non posso promettermi che functionrà perché non sono sicuro di capire cosa stai cercando di fare, tuttavia, dovrebbe darti una base da partire .

     server { listen 80; server_name foobar; root /html_root; index index.php index.html index.htm; location / { try_files $uri $uri/ @missing; } location /app { # Do whatever here or leave empty } location @missing { rewrite ^ /app$request_uri?; } } 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.