thinkphp5在nginx環境下運行的時候默認是不支持通過index.php/index/index/index的形式去訪問的,也不支持route,所以需要手動配置nginx使其支持。
apache默認支持
修改nginx的配置文件
- 找到你的thinkphp站點配置項,在其中的php項中如同下面配置
- windows
location ~ \.php(.*)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.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;
include fastcgi_params;
}
- linux
location ~ \.php(.*)$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.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;
include snippets/fastcgi-php.conf;
}
- 使nginx支持thinkphp5路由
location / {
index index.php index.html index.htm;
#如果請求既不是一個文件,也不是一個目錄,則執行一下重寫規則
if ( !-e $request_filename) {
rewrite ^(.*)$ /index.php/$1 last;
break;
}
}