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; } }