X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/fc2ca30e571cbfebaf13589bd7f4c09dd57ed404..e45031ca0ddc8f9b7b9a7bae381650b3c9309a23:/cookbooks/nominatim/templates/default/nginx.erb?ds=inline diff --git a/cookbooks/nominatim/templates/default/nginx.erb b/cookbooks/nominatim/templates/default/nginx.erb index 2e851c517..d56d99c8a 100644 --- a/cookbooks/nominatim/templates/default/nginx.erb +++ b/cookbooks/nominatim/templates/default/nginx.erb @@ -12,6 +12,20 @@ map $uri $nominatim_path_info { ~^/([^/]+)(.*)$ $2; } +map $args $format { + default default; + ~(^|&)format=html(&|$) html; + ~(^|&)format= other; +} + +map $uri/$format $forward_to_ui { + default 1; + ~^/ui 0; + ~/other$ 0; + ~/reverse.*/default 0; + ~/lookup.*/default 0; +} + map $query_string $email_id { ~(^|&)email=([^&]+) $2; } @@ -136,6 +150,11 @@ server { try_files $uri $uri/ @php; } + location /ui/ { + alias <%= @ui_directory %>/dist/; + index search.html; + } + location @php { if ($blocked_user_agent ~ ^2$) { return 403; } @@ -143,6 +162,7 @@ server { { return 403; } if ($blocked_email) { return 403; } + include <%= @confdir %>/nginx_blocked_generic.conf; limit_req zone=www burst=10; limit_req zone=tarpit burst=2; @@ -152,6 +172,9 @@ server { fastcgi_param QUERY_STRING $args; fastcgi_param PATH_INFO "$nominatim_path_info"; fastcgi_param SCRIPT_FILENAME "$document_root/$nominatim_script_name"; + if ($forward_to_ui) { + rewrite ^(/[^/]*) https://$host/ui$1.html redirect; + } } location ~* \.php$ { @@ -161,6 +184,7 @@ server { { return 403; } if ($blocked_email) { return 403; } + include <%= @confdir %>/nginx_blocked_generic.conf; limit_req zone=www burst=10; limit_req zone=tarpit burst=2; @@ -168,5 +192,9 @@ server { fastcgi_pass nominatim_service; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + + if ($forward_to_ui) { + rewrite (.*).php https://$host/ui$1.html redirect; + } } }