nginx + fpm +子目录

我有一个看起来像这样的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/工程成功。
  • 打到其中一个分页URL( /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。