codeigniter(CI)是一个轻量型的PHP优秀框架,但是它是在apache服务器下开发的,在nginx下需要特别的配置才可以使用。
codeigniter修改
对application/config/config.php
进行修改,大约在48行左右。
1
|
$config
[
'uri_protocol'
] =
"PATH_INFO"
;
|
修改nginx配置
对nginx的进行配置,nginx.conf
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name www.example.com;
root
/data/www/www
.example.com;
index index.php index.html index.htm;
location / {
# 这里使用try_files进行url重写,不用rewrite了。
try_files $uri $uri/
/index
.php?$query_string;
}
location ~ \.php($|/) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
|
要特别注意19行的include fastcgi_params;
,如果没有这一行,那么你的PHP程序会无法运行的。我被这个坑了很多次了。
访问url
在CI框架下,有一个默认的controller,叫welcome。原先在没有nginx的rewrite前,我们需要通过这样的方式访问http://www.example.com/index.php/welcome/index。现在我们可以http://www.example.com/welcome/index这样访问URL了。
声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客
来源:https://www.chenyudong.com/archives/codeigniter-in-nginx-and-url-rewrite.html