1. 程式人生 > >nginx下配置thinkphp5.0支援pathinfo模式

nginx下配置thinkphp5.0支援pathinfo模式

測試一個新專案,使用lnmp.org裡的一鍵包搭建的環境,部署好專案後,發現只能進入首頁,其他頁面均是404,發現是nginx配置預設不支援TP的pathinfo模式,出現404頁面的地址規則:http://serverName/index.php/模組/控制器/操作/[引數名/引數值...] 檢查配置檔案,發現/usr/local/nginx/conf目錄下有一個pathinfo.conf檔案,nginx預設沒有使用這個檔案。 在這裡插入圖片描述 一,修改pathinfo.conf:

set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                set $real_script_name $1;
                set $path_info $2;
 }
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;

二,修改nginx.conf檔案,註釋掉第14行,include enable-php.conf,在下面加一句include enable-php-pathinfo.conf;引入pathinfo.conf檔案,重啟nginx,網站可以正常訪問。

  1 server
  2     {
  3         listen 80 default_server;
  4         #listen [::]:80 default_server ipv6only=on;
  5         server_name dev.xy.com xy.com;
  6         index index.html index.htm index.php;
  7         root  /home/wwwroot/xingyuan/xingyuan;
  8 
  9         #error_page   404   /404.html;
 10 
 11         # Deny access to PHP files in specific directory
 12         #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
 13 
 14         #include enable-php.conf;
 15         include enable-php-pathinfo.conf;
 
 16         location /nginx_status
 17         {
 18             stub_status on;
 19             access_log   on;
 20         }
 21 
 22         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
 23         {
 24             expires      30d;
 25         }
 26 
 27         location ~ .*\.(js|css)?$
 28         {
 29             expires      12h;
 30         }
 31 
 32         location ~ /.well-known {
 33             allow all;
 34         }
 35 }