Nginx/Apache веб сервер, Rewrite GET запрос

202
28 марта 2018, 06:29

Здравствуйте, при передаче GET параметров в строке браузера на мой сайт, если таковы содержат пробелы, сервер возвращает:

Bad Request
Your browser sent a request that this server could not understand.

Я решил не исправлять это, так как я изначально хотел заменять пробелы, на "+" плюсы. То есть из строки site.ru/search/hello word делать site.ru/search/hello+word

Я знаю что это можно сделать предварительно, в форме поиска, заменить каждый пробел на плюс. Но у меня возникла небольшая идея, делать это непосредственно в Nginx (использую связку Nginx+Apache), так как это будет работать всегда, и хотел бы узнать как можно это сделать.

Вот конфигурация хоста:

server {
  listen 80;
  listen     443;
  ssl        on;
  ssl_certificate         /etc/nginx/ssl/site.pem;
  ssl_certificate_key     /etc/nginx/ssl/site.key;
  server_name site.com;
  #access_log /var/log/nginx/paniple.access_log;
  #error_log /var/log/nginx/paniple.error_log;
      index index.php;
      root /home/www/site;

      location / {
        try_files $uri $uri/ /index.php?query=$uri;
      }
      location ~ \.php$ {
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:81;
      }
      location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js|svg|ttf|mp3)$ {
      root /home/www/paniple; 
      access_log off; 
      expires 30d;
      }
      location ~* \.(eot|ttf|woff|woff2)$ {
        add_header Access-Control-Allow-Origin *;
      }
      location ~ /\.ht {
        deny all;
      }
}

Как я понял нужно сделать следующее:

Пользователь вводит в браузер любой запрос, к примеру site.ru/one two, и попадает на адрес site.ru/one+two , а php по непонятным мне причинам, но к счастью, уже получает GET строку где вместо "+" стоит пробел.

READ ALSO
woocommerce обработчик отправки в корзину

woocommerce обработчик отправки в корзину

задача: отправить одним запросом в корзину несколько вариаций товараКак это вижу я: массив значений через POST в обработчик, далее перехватить...

178
Как пропустить массив в запрос MySQLi?

Как пропустить массив в запрос MySQLi?

Есть следующий запрос:

209
Nginx Rewrite замена символа/текста

Nginx Rewrite замена символа/текста

Здравствуйте, в вирт хосте есть следующий конфиг:

180