linux下nginx404,linux+nginx下的404可能错误

liunx nginx 下CI访问 404 问题

今天把做好的项目放到Liunx服务器下,除首页以外全部部都报404的错误,在本地windows上测的好好的,怎么会出现这种问题呢,首先排除了文件大小写的问题,最终确定在nginx上,NGINX

默认不支持 PATH_INFO 模式,需要修改NGINX配置 让NGINX 来解析。在网上搜索到了几种方式,本人在这里总结一下。

第一种(并没有解决我的问题):server {

listen      80;

server_name www.ci.com;

index       index.php index.html index.htm;

root        "/servers/apps/CI";

location ~ \.php{

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

##########################################pathinfo 模式

set $path_info "";

set $real_script_name $fastcgi_script_name;

if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$"){

set $real_script_name $1;

set $path_info $2;

}

include fastcgi.conf;

fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;

fastcgi_param SCRIPT_NAME $real_script_name;

fastcgi_param PATH_INFO $path_info;

##########################################nginx支持pathinfo 模式的重点

}

}

第二种(还是没有解决):if (!-e $request_filename) {

rewrite ^.*$ /index.php last;

}

第三种(解决一部分,因为我后台路径是admin.php,index.php没事了,admin.php又不行了):location / {

root   /root/www;

index  index.php;

try_files $uri $uri/ /index.php?$uri&$args;

}

第四种(成功解决了我的问题):location ~ \.php(.*)$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_path_info;

fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

include fastcgi_params;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值