程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Nginx+CI出現404錯誤,nginxci404錯誤

Nginx+CI出現404錯誤,nginxci404錯誤

編輯:關於PHP編程

Nginx+CI出現404錯誤,nginxci404錯誤


最近剛學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則正常。   解決方案(要點加,重點標紅):
 1   server {
 2         listen 80;
 3         server_name example.com;
 4         root /data/wwwroot/example/ 5         index index.php index.html index.htm;
 6 
 7         location ~* \.(css|js|swf|htm|jpg|png|gif|json|atlas)?$ {
 8             expires 1d;
 9             add_header Pragma public;
10             add_header Cache-Control "public";
11         }
12         
13         location /controller-class/ {
14             if (!-e $request_filename) {
15                 rewrite ^/controller-class/(.*)$  /controller-class/index.php?q=$uri&$args;
16             }
17         }
18  
19         location ~ \.php$ {
20             fastcgi_pass   127.0.0.1:9000;
21             fastcgi_index  index.php;
22             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
23                         fastcgi_param  PHP_VALUE        open_basedir=$document_root:/tmp/:/proc/;
24             include        fastcgi_params;
25         }
26 
27     }

 

參考資料:http://www.2cto.com/os/201301/185926.html【Nginx+CI出現404錯誤問題】

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved