Nginx+CI框架出现404错误怎么解决_nginx

最近刚学ci框架,做了个简单的项目,在本地搭服务器的环境都调通了,但是部署到远程服务器时:

http://example.com/(index.php)/ 可以访问(为配置的默认controller-class)

http://example.com/(index.php)/[controller-class]/[controller-method] 不可以访问(提示404错误!)

最后百度原因:

对于/index.php/abc这种url,Apache和Lighttpd会按”index.php?abc”来解释,而nginx会认为是请求名字是“index.php”的目录下的abc文件的内容。所以CI在nginx下不配置rewrite是无法运行的,而在Apache和Lighttpd则正常。

解决方案(要点加粗,重点标红):

复制代码 代码如下:

server {
listen ;
server_name example.com;
root /data/wwwroot/example/ index index.php index.html index.htm;
location ~* \.(css|js|swf|htm|jpg|png|gif|json|atlas)?$ {
expires d;
add_header Pragma public;
add_header Cache-Control "public";
}
location /controller-class/ {
if (!-e $request_filename) {
rewrite ^/controller-class/(.*)$ /controller-class/index.php?q=$uri&$args;
}
}
location ~ \.php$ {
fastcgi_pass ...:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE open_basedir=$document_root:/tmp/:/proc/;
include fastcgi_params;
}
}

以上内容是小编给大家分享的Nginx+CI出现404错误怎么解决的相关内容,希望对大家有所帮助!

时间: 2024-10-23 16:33:37

Nginx+CI框架出现404错误怎么解决_nginx的相关文章

PHP(FastCGI)在Nginx的alias下出现404错误的解决方法_nginx

本文讲述了PHP(FastCGI)在Nginx的alias下出现404错误的解决方法.分享给大家供大家参考,具体如下: 在Nginx的官方wiki中如下描述 The alias directive cannot be used inside a regex-specified location. If you need to do this you must use a combination of rewrite and root. 在实际使用中alias下面的php返回404,而html确可

Cordova 5.0 无法访问外网,404错误的解决办法

问题: 最近更换了笔记本,重新配置了开发环境,cordova升了最新的5.0,发现build出来的应用不支持访问外网接口.IOS一切正常,Android访问外网的接口全部报404错误. 解决办法: 方法一:添加白名单插件 cordova-plugin-whitelist ,方便快捷, cordova plugin add cordova-plugin-whitelist 方法二:添加安全设置 <meta http-equiv="Content-Security-Policy" c

nginx下502和504错误的解决办法

 一.错误提示说明: Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止. Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI. 二.错误提示原因分析: 解决这两个问题其实是需要综合思考的,一般来说Nginx 502 Bad Gateway和php-fpm.conf的设置有关, 而Nginx 504 Gate

Nginx服务器中配置404错误页面时一些值得注意的地方_nginx

换了VPS之后的某一天,在Google管理员工具控制台下看到了大量的"软404"错误,查找了一些资料之后发现是自己在Nginx下配置404页面的方法不对才导致了错误的产生,在此记录一下Nginx下正确的404页面配置方法. 404是一个相应代码,表示"页面无法找到"(Page Not Found),Google关于"软404"给出的说法是: 复制代码 代码如下: Instead of returning a 404 response code f

Drupal站点换服务器后除主页其他404错误如何解决

问题描述: "page not found" Errors on every page except homepage." 也就是说您所建立的drupal站点除了主页面可以访问,其它栏目全部访问显示为404错误页面 问题分析: 造成这个问题最可能就是因为在新的服务器上的mod_rewrite模块或者是简洁链接(clean URLs)的错误配置(或称drupal伪静态).我们在地址栏中键入http://www.example.com/index.php?Q=user检测mod_

Nginx报504 gateway timeout错误的解决方法

最近在工作中,需要做Excel导入的功能,由于Excel的数据比较多,而且我们的服务端程序需要对数据的内容做校验,会调用很多的外部服务接口,所以毫无悬念的导入Excel接口调用超过了一分钟,并且报错:504 gateway timeout.以下是两种解决思路: 1. 优化业务代码 一个接口调用超过一分钟,一定有可以优化的地方,看看数据库或者接口的调用是否合理,是否可以合并请求. 2. 修改Nginx的服务器配置 如果实在是优化不了了,可以把Nginx的超时时间上调. 看看时间是否符合要求,在ng

tomcat6.0安装版已经配置完成,输入http://localhost:80/my/index.html出现HTTP status 404错误,怎么解决?

问题描述 我在ROOT下面写一个a.html,可以通过http://localhost:80/a.html访问,但是如果在webapp下面新建一个my文件夹,然后在my文件夹下面放入a.html以及WEB-INF相关文件,当输入http://localhost:80/my/a.html出现如下错误?是哪里配置不对吗?HTTPStatus404------------------------------------------------------------------------------

访问编码后的中文URL返回404错误的解决方法_php技巧

昨天做一个项目,其中有一个需求是每一张图片对应一小段文字对图片的说明,普通的做法是新建一个表然后把图片名与说明文字都记录到数据库内.仔细考虑后感觉这个应用不要数据库也能完成,我实现的方案是把说明文字URLENCODE后当做文件名,这样当我读取文件的时候再把文件名URLDECODE就可以后驱图片的文字说明了. 可是通过浏览器访问图片时却提示找不到文件,如有一张图片的说明文字为"琼台博客",URLENCODE后生成的文件名如下 复制代码 代码如下: %E7%90%BC%E5%8F%B0%E

IIS部署asp.net报404错误的解决方法_win服务器

1).所建网站->(右键)权限->"ASP.NET计算机帐户"是否已添加. 2).所建网站->(右键)属性->ASP.NET选项卡->版本是否为2.0,不是则修改为2.0; 3).IIS->WEB服务扩展中->ASP.NETV2.0是否被禁止,若为禁止状态则启动; 4).所建网站->(右键)属性->主目录->执行权限是否为:纯脚本;应用程序池是否设置: 5).所建网站->(右键)属性->ASP.NET选项卡->