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; }
- windows
- 使nginx支持thinkphp5路由
location / { index index.php index.html index.htm; #如果請求既不是一個文件,也不是一個目錄,則執行一下重寫規則 if ( !-e $request_filename) { rewrite ^(.*)$ /index.php/$1 last; break; } }