2011-11-03 3 views
0
server { 
    listen 80; 
    server_name www.site.dk; 
    access_log /var/www/www.site.dk/logs/access.log; 
    error_log /var/www/www.site.dk/logs/error.log; 

    root /var/www/www.site.dk/; 


    location/{ 

    index index.php index.html; 

    if (-f $request_filename) { 
     break; 
    } 

    if (!-f $request_filename) { 
     rewrite ^/(.+)$ /index.php last; 
     break; 
    } 
    } 

    location ~ \.php$ { 
    include /etc/nginx/fastcgi_params; 
    fastcgi_pass 127.0.0.1:9000; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME /var/www/www.site.dk$fastcgi_script_name; 
    } 
} 

J'essaye d'obtenir nginx pour servir n'importe quel fichier physique (css, images, js) sans rien faire mettre laissez PHP traiter toutes les autres demandes. Tout ce qui n'est pas un fichier physique devrait être passé à php.nginx vhost ne sert pas les fichiers statiques

Mais cela ne fonctionne pas, php est en cours d'exécution, mais l'appel d'un fichier .css est également transmis à php en tant que demande.

+0

mieux réalisé à serverfault.com je pense ... –

Répondre

0

Cela fera le travail

server { 
    listen 80; 
    server_name www.site.dk; 
    access_log /var/www/www.site.dk/logs/access.log; 
    error_log /var/www/www.site.dk/logs/error.log; 

    root /var/www/www.site.dk/; 
    index index.php index.html; 

    location/{ 
     try_files $uri $uri/ @fastcgi; 
    } 

    location ~ .+\.php$ { 
     location ~ \..*/.*\.php$ { return 400; } 
     error_page 418 = @fastcgi; 
     return 418; 
    } 

    location @fastcgi { 
     include /etc/nginx/fastcgi_params; 
     fastcgi_pass 127.0.0.1:9000; 
     ... 
    } 
} 
Questions connexes