在apache下访问index.php/welcome/index
能够吧index.php
后面的部分作为参数传递给index.php
文件,CI框架解析后会去调用Welcome
控制器下的index
方法。
但是在nginx下会当把index.php
作为目录名而不是文件名,所以会报404 Not Found
我的解决方法是通过url重写来实现,重写规则如下:
# 保留index.php入口文件
if (!-e $request_filename) {
rewrite ^index.php/(.*)$ /index.php?$1
}
# 隐藏index.php入口文件
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?$1
}