Re: GET-параметры как статическая страница

Fedor Dikarev fe на hamilton.rinet.ru
Вт Янв 8 16:45:22 UTC 2019


08.01.2019 3:23, valet пишет:
> Здравствуйте.
> 
> Вопрос такой: на сервере лежат статические html-файлы с именами типа
> index.html?id=1 index.html?id=2 и т.д. - то есть это их имена именно в таком
> виде.
> Как заставить nginx отдавать собственно именно эти файлы?
> 
> стандартный кусок конфига
>     location / {
>         root    /data/www/site.ru/;
>         index index.html;
> }
> на запросы типа http://site.ru/index.html?id=1 отдает просто
> http://site.ru/index.html, то есть параметры отбрасываются.
> 
> Я так подозреваю нужен какой-то правиьлный rewite, но гугление пока не
> помогает, знаний тоже не хватает, помогите разобраться.

можно попробовать try_files, например так:
>         location /args_test/ { try_files $uri$is_args$args =404; }

или так:
>         location /args_test/ { try_files $uri$is_args$args $uri; }

И тогда:
> root на hamilton:/st/hosting/hamilton/htdocs/args_test # ls
> index.html      index.html?id=1

> root на hamilton:/st/hosting/hamilton/htdocs/args_test # cat *
> none
> one

> curl 'http://hamilton.rinet.ru/args_test/index.html?id=1'
> one

возможно это решит конкретно эту задачу. Но надо помнить, что добавление
любого другого параметра в запрос все сломает, и если их будет
несколько, то важен будет и порядок в котором они передаются в запросе.
Если надо будет и такие случаи разобрать, то уже надо будет правильный
map строить от аргументов map-ить в имя файла на диске.

> 
> С уважением, Леонид.
> 
> Posted at Nginx Forum: https://forum.nginx.org/read.php?21,282565,282565#msg-282565
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
> 


Подробная информация о списке рассылки nginx-ru