Проблема с перенаправлением с nginx (это работает в Apache) - PullRequest
1 голос
/ 25 апреля 2011

У меня проблема с конфигурацией nginx (я работаю с apache).Я должен сделать переписать, поэтому я настроил:

    location = / {
            root   /var/www/domain.tld/public_html;
            index  index.php;
    }

    location / {
            root   /var/www/domain.tld/public_html;
            index  index.php;

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

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


    # serve static files directly
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|wmv)$ {
            access_log        off;
            expires           30d;
    }

Проблема в том, что у меня есть статические файлы, расположенные в директориях вроде / css, / img, / js, но у меня также есть контроллер phpкоторый обслуживает загруженные пользователем файлы и имеет структуру: domain.tld/media/image/NAME/EXTENSION.Это не работает, потому что он пытается получить статический файл, но если я иду с domain.tld/media/image/NAME/EXTENSION/ (обратите внимание на окончательный / ), это работает.

Как я могу решить эту проблему?

Заранее спасибо!

1 Ответ

3 голосов
/ 26 апреля 2011

Вы не читали документацию? ;) Это перечислено в общих ловушках от пользователей, прибывающих из Apache. Используйте директиву try_files, как описано здесь: http://wiki.nginx.org/Pitfalls#Check_IF_File_Exists

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...