开发者

Not found other than homepage

开发者 https://www.devze.com 2023-03-03 21:07 出处:网络
I\'m using YII framework. I can access my site through: localhost/index.php then If I click any links on it it says: 404 not found.

I'm using YII framework. I can access my site through: localhost/index.php then If I click any links on it it says: 404 not found. It works on Apache. I'm trying to configure it with NGINX with no success. Can somebody please tell me what can be the problem if something works with Apache but does not work with NGINX?

Log error from nginx:

2011/05/07 11:27:42 [error] 5104#3152: *30 CreateFile() "c:\EWemp\nginx-0.8.52/html/rooms/finished" failed (3: The system cannot find the path specified), client: 127.0.0.1, server: localhost, request: "GET /rooms/finished HTTP/1.1", host: "localhost", referrer: "http://localhost/index.php"

So, I assume that it needs some kind of 开发者_JAVA技巧URL rewrite, since I do not have html/rooms/finished directory. It is like html/controller/action/ but I do not know what to change in order to get it to work


Yii uses one index.php file to handle all client requests. You need to rewrite /rooms/finished to index.php/rooms/finished.

I have used this Nginx configuration to rewrite all requests to be handled by one index.php file. This configuration uses Fast-CGI to pass PHP requests to PHP-FPM. If you use proxy_pass, you can use rewrite. proxy_pass is explained here.

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;
}


In my opinion, may be you should make ".htaccess file" like in Apache.

0

精彩评论

暂无评论...
验证码 换一张
取 消