Правило nginx, обрабатывающее аргументы к скрипту как имя файла?

Существует файл "/var/www/html/folder/file.htm?foo=bar&bar=foo"

Необходимо в nginx этот файл отобразить по запросу «example.com/folder/file.htm?foo=bar&bar=foo», чтобы ? не интерпретировалось как аргумент к скрипту.



Додуматься сумел только до try_files $uri /$uri;, что приводит к 500-й ошибке.
  • Вопрос задан
  • 3602 просмотра
Решения вопроса 1
forefinger
@forefinger
location /folder/ {
    # основа: отдаем файлы и учетом аргументов 
    try_files $request_uri =404;

    # вариация 1: для запроса file.html?a=b выдадим file.html, если он есть, если его нет проверим file.html?a=b и отдадим его или 404
    try_files $uri $request_uri =404;

    # вариация 2: для запроса file.html?a=b выдадим file.html?a=b, если он есть, если его нет проверим file.html и отдадим его или 404
    try_files $uri $request_uri =404;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
$args
$arg_foo
$arg_bar

Смотрите в сторону работы с этими переменными.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы