2015-01-08 1 views
2

Laravel не получает переменные $ _GET из строки запроса URL-адреса. $ _GET и Input :: all() пусты.Laravel 5 - Проблема конфигурации сервера NGINX с строками URL-адресов

Пример:

example.app/ex/login.php?country=US

"страна =" никогда не появляется в моей $ _GET переменной

После много исследований и попыток много разных конфигураций NGINX, теперь я могу только давать результаты, когда этот пример используется.

Пример:

example.app/index.php/ex/login.php?country=US

переменная $ _GET теперь показывает пару значений название страны.

Какова правильная конфигурация, позволяющая содержать строки запроса в URL-адресе?

Мои текущие сайты с поддержкой конфигурации для моего "example.app" является ...

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

}

ответ

3

Это конфигурация сервера NGINX сайтов с поддержкой что в конечном итоге работает для меня ...

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

Вы можете просто подтвердить, что это фактический ответ на проблему. У меня такая же проблема. Когда я добавляю «error_page 404 /index.php» в конфигурацию, он работает, но на самом деле все ответы 404 вместо ожидаемых 200, а запросы POST больше не работают. – mimarcos

+0

Это решило очень раздражающее 404 вопрос для меня спасибо :) – BlackBurn027

5

Это кажется правильным, кроме того закомментирована.

location/{ 
    #try_files $uri $uri/ /index.php?$query_string; 
} 

Голые кости, который я использую в тестировании является:

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 и $ арг функционально идентичны в соответствии с: NGINX Docs

+0

мои try_files был: try_files $ $ URI URI/= 404; ...... Мне просто нужно было заменить = 404 на /index.php?$args; сказать nginx рассматривать эти URL как строки запроса, а не «сдаваться» и отображать страницу 404, потому что файлы на самом деле не существуют ... Это должно было заставить CPVLabs работать над Ubuntu 14.04 (Digital Ocean Droplet). БЛАГОДАРИМ ВАС ДЛЯ МГНОВЕННОГО РЕШЕНИЯ ... Я <3 СТЕК ПЕРЕПОЛНЯЮТ !!!! –

0

Для меня это работало только путем изменения try_files $uri $uri/ /index.php?$query_string; в try_files $uri $uri/ /index.php?$args внутри location / блока на убунту (14,04) Nginx

Смежные вопросы