我正在使用YII框架。我可以通过localhost / index.php访问我的网站 然后,如果我点击它上面的任何链接,它会说:404找不到。 它适用于Apache。我试图用NGINX配置它没有成功。有人可以告诉我,如果某些东西适用于Apache但不能与NGINX一起使用会出现什么问题?
来自nginx的日志错误:
2011/05/07 11:27:42 [错误] 5104#3152:* 30 CreateFile()“c:\ EWemp \ nginx-0.8.52 / html / rooms / finished”失败(3:系统不能找到指定的路径),client:127.0.0.1,server:localhost,request:“GET / rooms / finished HTTP / 1.1”,host:“localhost”,referrer:“http://localhost/index.php”
所以,我认为它需要某种URL重写,因为我没有html / rooms / finished目录。 它就像html / controller / action /但我不知道要改变什么才能让它工作
答案 0 :(得分:1)
Yii使用一个index.php文件来处理所有客户端请求。您需要将/rooms/finished
重写为index.php/rooms/finished
。
我已经使用这个Nginx配置重写了一个index.php文件要处理的所有请求。此配置使用Fast-CGI将PHP请求传递给PHP-FPM。如果您使用proxy_pass
,则可以使用rewrite
。 proxy_pass
解释为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;
}
答案 1 :(得分:0)
在我看来,你应该像在Apache中一样制作“ .htaccess文件”。