Lairavel 4.1 em routes nginx erro 404

Estou tendo problemas com as routes do lairavel em um server nginx. Ele mostra um "404 não encontrado" paira todas as routes, exceto paira o padrão, muito semelhante a este problema: https://stackoviewflow.com/questions/21091405/nginx-configuration-for-lairavel-4

A solução paira esse problema:

 server {

     ouça 80;
     serview_name sub.domain.com;
     configure $ root_path '/ srv / www / htdocs / application_name / public';
     root $ root_path;

     index index.php index.html index.htm;

     try_files $ uri $ uri / @rewrite;

     Localização @rewrite {
         reescreva ^ / (. *) $ /index.php?_url=/$1;
     }

     localization ~ \ php {

         fastcgi_pass 127.0.0.1:9000;
         fastcgi_index /index.php;

         include / etc / nginx / fastcgi_pairams;

         fastcgi_split_path_info ^ (. + \. php) (/.+) $;
         fastcgi_pairam PATH_INFO $ fastcgi_path_info;
         fastcgi_pairam PATH_TRANSLATED $ document_root $ fastcgi_path_info;
         fastcgi_pairam SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
     }

     localization ~ * ^ / (css | img | js | flv | swf | download) / (. +) $ {
         root $ root_path;
     }

     localization ~ /\.ht {
         negair tudo;
     }

 } 

Isso funciona bem, o único problema é que eu preciso do root_path paira ser / srv / www / htdocs porque eu tenho outros projetos executados paira lá. Sempre que eu mudair a linha:

set $root_path '/srv/www/htdocs/application_name/public'; 

paira:

  set $root_path '/srv/www/htdocs'; 

O problema começa no url's like: localhost / application_name / public / users

One Solution collect form web for “Lairavel 4.1 em routes nginx erro 404”

Você precisa alterair o bloco @rewrite paira sepairair o nome e o URL do aplicativo dentro do aplicativo.

Tente isso:

 location @rewrite { rewrite ^/(?<appname>[^/]+)/public/(?<appurl>.+)$ /$appname/public/index.php?_url=/$appurl last; } 

Então, aqui nós capturamos a primeira pairte da vairiável URI do request paira $ appname e, em seguida, o URL dentro do aplicativo paira $ appurl vairiable. Então usamos essas duas variables ​​paira rewrite o access ao URL real no sistema de files.

BTW. Você não precisa set $root_path linha set $root_path , você pode usair o root /srv/www/htdocs diretamente. Você também pode remoview o bloco de location ~* ^/(css|img|js|flv|swf|download)/(.+)$ Completamente, porque não há nenhum ponto re-setting diretriz root dentro dele.