需求
项目是thinkphp3.2框架,从原本的wamp服务器迁移到lnmp服务器,由于apache是模块加载的,所以完美支持pathinfo,但是nginx就不行啊,所以为了解决这个问题就要修改nginx的配置
过程
由于该服务器上配置了多个域名,所以在nginx.conf里
include vhost/*.conf
加载当前vhost目录下多个conf文件,下面放上自己的例子
server {
listen 80;
server_name xxx.xxx.com; #访问域名
access_log /home/log/nginx/api.log access;
index index.html index.htm index.php;
root /home/tp5; #访问路径
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
try_files $uri /index.php$uri;
}
location ~ .+\.php($|/) {
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 7d;
}
}
以上就是我的例子,在nginx上完美实现了pathinfo。