2014-11-28 2 views
0

Я совершенно новый для Nginx, и у меня возникли проблемы с настройкой моего небольшого сайта PHP/Slim.Как я могу переписать URL-адреса при работе со статическими активами на nginx?

Мой сайт карты URL-адреса, как:

/, /news, /about, /user/<user>, и так далее ...

мне почти удалось получить эту работу с этим:

server { 
    ... 

    location/{ 
    if (!-e $request_filename) { 
     rewrite ^(.*)$ /app.php break; #app.php is my main PHP file 
    } 

    fastcgi_... #PHP-FPM things here... 
    } 

    ... 
} 

Но, с кодом выше, я не могу указать /, а мои активы найдены в /assets/css/style.css не загружаются.

Как я могу заставить это работать?

Спасибо!

ответ

0

Используйте отдельное место для статических активов (текст, изображения, аудио, видео, файлы, вы можете добавить дополнительные расширения, если вам нужно). И вам нужно отдельное расположение для дескриптора * .php, удалите конфигурацию fastcgi из/раздела. Таким образом, у вас будет 3 места (по крайней мере :).

location/{ 
    try_files $uri /app.php?$args; 
} 

location ~* \.(txt|ico|css|js|bmp|jpg|jpeg|gif|png|svg|swf|avi|mp4|webm|pdf|mel|rar|zip|bin)$ { 
    expires max; 
    access_log off; 
    add_header Cache-Control public; 
    # here can be more assets-optimized rules) 
} 

location ~ \.php$ { 
    # minimal fastcgi configuration: 
    if (!-e $request_filename) { rewrite ^(.*)$ /app.php break; } # Catch 404s that try_files miss 
    fastcgi_pass unix:/var/run/php5-fpm.sock; # put your real backend here! 
    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
} 
+0

Я попробую! Спасибо – Cybrix

+0

С приведенным выше кодом браузер продолжает загружаться. Это должно быть перенаправлено между определением местоположений бесконечно. – Cybrix

+0

Конфигурация в моем примере верна, протестирована на локальном хосте и основана на моих рабочих шаблонах nginx. Возможно, что-то сломано в полной конфигурации nginx на вашем сервере. Я также добавил минимальные параметры fastcgi для местоположения php. –