404 ошибки с Codeigniter на nginx при доступе к контроллеру - PullRequest
3 голосов
/ 02 октября 2011

Я использую Codeigniter для своего веб-сайта, веб-сайт рута прекрасно работает с целевой страницей, однако у меня есть раздел для разработки /var/www/domain.com/www/dev/, который /var/www/domain.com/www/ является корневым (целевая страница хранится там). 1003 *

Теперь, когда я перехожу на domain.com/dev, мой веб-сайт codeigniter работает нормально, но когда я загружаю контроллер, например, domain.com/index.php/search это дает мне ошибку 404.

В журналах ошибок domain.com это показывает это:

2011/10/02 02:03:37 [error] 17042#0: *568 open() "/var/www/domain.com/www/dev/index.php/search" failed (20: Not a directory), client: xx.xx.xx.xx, server: domain.com, request: "GET /dev/$

Теперь у меня нет полной идеи, почему он это делает и как решить эту проблему. Как я могу остановить это, а также удалить «index.php» удалить URL, потому что учебники Codeigniter содержат только reacheerule apache, который не действует на nginx.

1 Ответ

4 голосов
/ 02 октября 2011

Я считаю, что codeigniter использует шаблон front-controller, который будет перенаправлять все запросы на index.php с использованием правила перезаписи.

Поскольку правила перезаписи предназначены для apache, а не nginx, сервер фактически ищетдля каталога с именем search, который находится в другом каталоге с именем index.php и т. д.

У меня нет большого опыта работы с nginx, но я считаю, что это сообщение в блоге может помочь вам придумать правила перезаписи на nginx.

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