多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > codeigniter > codeigniter在nginx下控制器404錯誤

codeigniter在nginx下控制器404錯誤

來源:程序員人生   發布時間:2014-09-26 17:56:33 閱讀次數:6180次

本文章并非原創,是收集網友的解決辦法。


1.。。。。。

經查詢資料發現nginx不支持path_info 

解決的辦法:

修改配置文件nginx.config

location ~ .php($|/) { root /usr/local/website; set $script $uri; set $path_info ""; if ($uri ~ "^(.+.php)(/.+)") { set $script $1; set $path_info $2; } fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param PATH_INFO $path_info; fastcgi_param SCRIPT_FILENAME $document_root$script; fastcgi_param SCRIPT_NAME $script; }

除了root以外,別的需要一樣,特別是location ~ .php($|/)


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2.。。。。。。。。。。

nginx版本:1.2.1 codeigniter:2.1.2
nginx需要增加以下:

location ~ .php { #root ; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_index index.php; set $path_info ""; set $real_script_name $fastcgi_script_name; if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") { set $real_script_name $1; set $path_info $2; } fastcgi_param PATH_INFO $path_info; fastcgi_param SCRIPT_NAME $real_script_name; #fastcgi_param SCRIPT_FILENAME $real_script_name; #fastcgi_param REQUEST_URI $real_script_name; }


注意:
1.是~.php而不是~.php$
2.include fastcgi_params需要放在特殊設置的變量之前
說明:codeigniter內部是根據SCRIPT_NAME和REQUEST_URI來識別controller和method的。
具體是根據REQUEST_URI-SCRIPTNAME,剩下的字符串作為directory/class/method的各個字段,以‘/’分割,
所以我們需要設置REQUEST_URI和SCRIPT_NAME
上述代碼片段是將url中的.php之前的作為SCRIPT_NAME,整個作為REQUEST_URI,

這樣codeigniter就可以正常識別了。



-----------

3.。。。。。。。。。

最近研究CI框架,發現這個框架的路由功能在Nginx下有問題,報404錯誤,后來在網上查資料,發現需要開啟PATH_INFO。在nginx7.16以后貌似就支持PATH_INFO了,只需要在配置文件中開啟即可。

打開nginx.conf文件,在你的虛擬主機下增加重寫規則,代碼如下:

server { listen 80; server_name www.ci.com; location / { root d:/www/Codeigniter_2.0.1/; index index.html index.htm index.php; rewrite ^/$ /index.php last; rewrite ^/(?!index.php|robots.txt|images|js|styles)(.*)$ /index.php/$1 last; } location ~ ^(.+.php)(.*)$ { root D:/www/Codeigniter_2.0.1/; fastcgi_index index.php; fastcgi_split_path_info ^(.+.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; fastcgi_pass 127.0.0.1:9002; include fastcgi_params; } }
4.。。。。。。。。。

還提供一個更簡單的方法

   今天整了一下Nginx+CodeIgniter,發現不管你在 URL 里面寫什么都只是出現缺省頁面,后來想了一下Nginx不支持PATH_INFO變量,解決這個問題的第一步是打開application/config/config.php 文件,查找 URI Protocol 信息。在那里推薦你去嘗試一些其他的設置方法。如果這些方法都無效,你就需要讓 CodeIgniter 去強行加一個問號去標記你的 URL。為了做到這點,打開你的 application/config/config.php 文件把里面的:


1
$config['index_page'] = "index.php";


修改成:


1
$config['index_page'] = "index.php?";






5.。。。。。。。。

codeigniter(ci)在nginx下返回404的處理方法即codeigniter在nginx下配置方法

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生

------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: h免费网站 | 伊人网99| 中文字幕一区二区三 | 免费区欧美一级毛片 | 国产亚洲综合激情校园小说 | 在线午夜 | 中文字幕第15页 | 一区二区三区久久精品 | 久久亚洲精品人成综合网 | 2022久久国产精品免费热麻豆 | 亚洲黄色网址 | 中文精品久久久久中文 | 国产精品久久久久久久hd | 久久99热成人精品国产 | 性欧美精品videofree高清hd | 精品一区二区三区中文 | 性欧美欧美另类巨大 | 免费女人18毛片a级毛片视频 | 国产成人久久精品二区三区牛 | 91精品欧美综合在线观看 | 亚洲精品成人一区二区 | 国产精品久久精品视 | www.狠狠艹| 一级看片免费视频 | 国产免费播放一区二区三区 | 精品成人网 | 午夜写真福利视频在线观看 | 国产麻豆剧看黄在线观看 | 国产乱码精品一区二区三区卡 | 日韩免费观看一级毛片看看 | 宇都宫紫苑(rion)在线播放 | a级毛片黄片 | 亚洲最大网站 | 亚洲乱码一区 | 亚洲视频在线观看视频 | 欧美日韩精品一区二区三区视频在线 | 国产一区二区三区四区 | 欧美激情_区二区三区 | 2022亚洲在线免费视频 | 一区二区中文字幕在线观看 | 欧美另类videovideosex |