之前用的都是Apache做webserver從沒碰到過pathinfo的問題,自從接觸了nginx剛好項目又是用ci框架做的,剛裝好就碰到pathinfo未配置導致的頁面404錯誤。
長話短說,下面我貼上配置代碼
nginx.conf中sever段配置
server { listen 80 default_server; #listen [::]:80 default_server ipv6only=on; server_name www.lnmp.org; index index.html index.htm index.php; root /home/wwwroot/default; #error_page 404 /404.html; include enable-php-pathinfo.conf; location /nginx_status { stub_status on; access_log off; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /\. { deny all; } access_log /home/wwwlogs/access.log; error_log /home/wwwlogs/error.log error; } include vhost/*.conf; }
enable-php-pathinfo.conf 配置內容
location ~ [^/]\.php(/|$) { fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; fastcgi_split_path_info ^(.+?\.php)(/.*)$; set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; try_files $fastcgi_script_name =404; include fastcgi.conf; }