Estoy trabajando en una aplicación multiinquilino en React y algunos clientes quieren cargar archivos .html en la raíz del proyecto para usar la consola de Google y cosas por el estilo. No me gustaría que todos esos archivos se mezclen con el código de la aplicación, aparte del siguiente código:
location / { try_files $ uri /index.html = 404; }Me gustaría agregar en NGINX un bloque de ubicación que me permita desviar a otra carpeta cualquier otro archivo .html que comience en /, excluyendo casos como /static/example.html.
Ejemplo:
/ -> React default /static/*.html -> React default /*.html -> Derive to new folderAgradecería cualquier ayuda en este sentido.
Intenté algo como esto...
location /*.html { root /extras_folder; } location / { root /project_folder; try_files $uri /index.html =404; }pero no funciona
¿Qué pasa con esto?
server { listen 80; root /project_folder; location / { try_files $uri @extras_folder; } location @extras_folder { root /extras_folder; try_files $uri @index_html; } location @index_html { try_files /index.html =404; } } Esto busca en /project_folder primero, en /extras_folder segundo y, si aún no se encuentra ningún archivo, finalmente sirve /project_folder/index.html (o 404 si ese archivo no existe). En este caso, colocaría los archivos cargados en /extras_folder .
Esto se adhiere a las reglas que describiste:
location ^~ /index.html { root /project_folder; try_files $uri /index.html =404; } location ~ ^/[^/]+\.html { root /extras_folder; try_files $uri /index.html =404; } location / { root /project_folder; try_files $uri /index.html =404; }