instalar - Laravel 5-Problema de configuración del servidor NGINX con cadenas de consulta de URL
laravel nginx windows (3)
Esta es la configuración del servidor NGINX habilitada para sitios que terminó trabajando para mí ...
server {
listen 80;
server_name registration.app;
root /home/vagrant/Code/registration/public;
charset utf-8;
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/registration.app-error.log error;
error_page 404 /index.php;
sendfile off;
# Point index to the Laravel front controller.
index index.php;
location / {
try_files $uri $uri/ index.php?$query_string;
}
location ~ /.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+/.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ //.ht {
#deny all;
}
}
Laravel no recibe ninguna variable $ _GET de la cadena de consulta de URL. $ _GET y Input :: all () están vacíos.
Ejemplo:
example.app/ex/login.php?country=US
El "país = EE. UU." Nunca aparece en mi variable $ _GET
Después de investigar mucho y probar muchas configuraciones diferentes de NGINX, ahora solo puedo producir resultados cuando se usa este ejemplo.
Ejemplo:
example.app/index.php/ex/login.php?country=US
La variable $ _GET ahora muestra el par de valores del nombre del país.
¿Cuál es la configuración adecuada para permitir cadenas de consulta dentro de la URL?
Mi configuración actual habilitada para sitios para mi "example.app" es ...
server {
listen 80;
server_name example.app;
root /home/vagrant/Code/public;
index index.html index.htm index.php;
charset utf-8;
location / {
#try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/registration.app-error.log error;
error_page 404 /index.php;
sendfile off;
location ~ /.php$ {
fastcgi_split_path_info ^(.+/.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
}
location ~ //.ht {
deny all;
}
}
Esto parece correcto, aparte de ser comentado.
location / {
#try_files $uri $uri/ /index.php?$query_string;
}
Lo básico que uso en las pruebas es:
server {
listen 80 default_server;
root /var/www/project/public;
index index.php
server_name localhost;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ /.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
}
}
$ query_string y $ args son funcionalmente idénticos de acuerdo con: NGINX Docs
Para mí solo funcionó al cambiar try_files $uri $uri/ /index.php?$query_string;
try_files $uri $uri/ /index.php?$args
dentro de la location /
bloque en ubuntu (14.04) nginx