我有一个看起来像这样的nginxconfiguration:
location ^~ /movies { alias /var/dp.cx/movies/current/public; fastcgi_index index.php; try_files $uri /movies/index.php; location ~* \.php { fastcgi_pass unix:/run/php/php7.1-fpm.sock; fastcgi_split_path_info ^(.+\.php)(.*)$; include /etc/nginx/fastcgi_params; } }
这是一个Laravel应用程序,几乎完全开箱即用。 但是,这个configuration有一些小问题。
/movies触发一个404.击中/movies/工程成功。 /movies/test?page=2 )没有来自查询string的信息。 我不知道我在哪里find了这个configuration,但是它似乎是我用nginx + fpm和子目录URLfind的“工作”configuration最接近的。
击中/电影触发一个404.击中/电影/工程成功。
要解决它在服务器级…请添加以下位置块旁边的电影现有的位置块…
location = /movies { return 301 $scheme://$host/movies/; }
打到其中一个分页URL(/ movies / test?page = 2)没有来自查询string的信息。
这是由于try_files行不能传递查询string。 要通过它,使用下面的try_files指令将工作…
try_files $uri /movies/index.php$is_args$args;
直接引用http://nginx.org/en/docs/http/ngx_http_core_module.html …
$ is_args – 如果请求行有参数,则为“?”,否则为空string。