Не найдено кроме домашней страницы - PullRequest
0 голосов
/ 07 мая 2011

Я использую YII Framework. Я могу получить доступ к своему сайту через: localhost / index.php Затем, если я нажму на любую ссылку на нем, он говорит: 404 не найден. Работает на Apache. Я пытаюсь настроить его с NGINX безуспешно. Может кто-нибудь сказать мне, в чем может быть проблема, если что-то работает с Apache, но не работает с NGINX?

Ошибка журнала от nginx:

2011/05/07 11:27:42 [error] 5104 # 3152: * 30 Ошибка CreateFile () "c: \ EWemp \ nginx-0.8.52 / html / rooms / done" (3: система не может найти указанный путь), клиент: 127.0.0.1, сервер: localhost, запрос: «GET / rooms / done HTTP / 1.1», хост: «localhost», реферер: «http://localhost/index.php"

Итак, я предполагаю, что для этого нужно переписать какой-то URL, поскольку у меня нет каталога html / rooms / finish. Это похоже на html / controller / action /, но я не знаю, что изменить, чтобы заставить его работать

Ответы [ 2 ]

1 голос
/ 09 мая 2011

Yii использует один файл index.php для обработки всех клиентских запросов. Вам нужно переписать /rooms/finished в index.php/rooms/finished.

Я использовал эту конфигурацию Nginx, чтобы переписать все запросы, которые будут обрабатываться одним файлом index.php. Эта конфигурация использует Fast-CGI для передачи PHP-запросов в PHP-FPM. Если вы используете proxy_pass, вы можете использовать rewrite. proxy_pass объясняется здесь .

location / {
    index index.php; # Set the index file
    try_files $uri $uri/ @handler; # If missing pass the URI to front handler
}

location @handler {
    rewrite / /index.php;
}

location ~ .php$ {
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param  SCRIPT_FILENAME  PATH_TO_SCRIPT$fastcgi_script_name;
    fastcgi_pass   127.0.0.1:9000;
}
0 голосов
/ 09 мая 2011

На мой взгляд, может быть, вы должны сделать " .htaccess file ", как в Apache.

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