configuration - que - ¿Cómo establecer index.html como archivo raíz en Nginx?
que es el index php (4)
De acuerdo con la documentación Comprueba la existencia de archivos en el orden especificado y utiliza el primer archivo encontrado para el procesamiento de solicitudes; el procesamiento se realiza en el contexto actual. La ruta a un archivo se construye a partir del parámetro del archivo de acuerdo con las directivas raíz y alias. Es posible verificar la existencia del directorio especificando una barra al final de un nombre, por ejemplo, "$ uri /". Si no se encuentra ninguno de los archivos, se realiza una redirección interna al uri especificado en el último parámetro. Importante
se realiza una redirección interna a la uri especificada en el último parámetro.
Por lo tanto, en el último parámetro debe agregar su página o código si los dos primeros parámetros devuelven falso.
location / {
try_files $uri $uri/index.html index.html;
}
Cómo configurar index.html para el nombre de dominio, por ejemplo, https://www.example.com/ - lleva al usuario a index.html en el directorio raíz.
He intentado cosas diferentes como:
server {
# some configs
location = / {
index index.html;
fastcgi_index index.html;
}
or
location / {
index index.html;
fastcgi_index index.html;
}
}
Nada me ayudó.
Hay algunas otras configuraciones con la palabra clave de ubicación, aunque ya las había comentado.
Otras configuraciones de "ubicación" en el server {
cláusula:
location ~ .*(css|htc|js|bmp|jp?g|gif|ico|cur|png|swf|htm?|html)$ {
access_log off;
root $www_root;
}
location ~ /.php$
{
include /etc/nginx/fastcgi_params;
index index.html;
fastcgi_index index.html;
fastcgi_param SCRIPT_FILENAME $www_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass 127.0.0.1:9000;
# Директива определяет что ответы FastCGI-сервера с кодом больше или равные 400
# перенаправлять на обработку nginx''у с помощью директивы error_page
fastcgi_intercept_errors on;
break;
}
location ~ //.ht {
deny all;
}
Todos ellos fueron comentados y comentados, pero nada ayudó.
Las ediciones de PS se realizaron en el archivo /etc/nginx/sites- habilitado / nombrededominio.com.
La respuesta es colocar el directorio raíz en las directivas de ubicación:
root /srv/www/ducklington.org/public_html;
en tu bloque de ubicación puedes hacer:
location / {
try_files $uri $uri/index.html;
}
que le indicará a ngingx que busque un archivo con el nombre exacto dado primero, y si no se encuentra ninguno de esos archivos, probará uri / index.html. Por lo tanto, si aparece una solicitud de https://www.example.com/ , buscaría una coincidencia de archivo exacta primero, y al no encontrar eso, se buscaría index.html
location / {
es la ubicación más general (con location {
). AFAIU con cualquier cosa, AFAIU . Dudo que sea útil tener la location / { index index.html; }
location / { index index.html; }
debido a una gran cantidad de contenido duplicado para cada subdirectorio de su sitio.
El enfoque con
try_files $ uri $ uri / index.html index.html;
es malo, como se menciona en un comentario anterior, porque devuelve index.html
para las páginas que no deberían existir en su sitio (cualquier posible $uri
terminará en eso). Además, como se menciona en una respuesta anterior, hay una redirección interna en el último argumento de try_files
.
Su enfoque
location = / { index index.html;
también es malo, ya que el index
hace una redirección interna también. En caso de que quiera eso, debería poder manejar eso en una location
específica. Crear, por ejemplo
location = /index.html {
como se propuso here . Pero luego tendrá un enlace funcional http://example.org/index.html
, que puede no ser deseado. Otra variante, que uso, es:
root /www/my-root;
# http://example.org
# = means exact location
location = / {
try_files /index.html =404;
}
# disable http://example.org/index as a duplicate content
location = /index { return 404; }
# This is a general location.
# (e.g. http://example.org/contacts <- contacts.html)
location / {
# use fastcgi or whatever you need here
# return 404 if doesn''t exist
try_files $uri.html =404;
}
PD: es extremadamente fácil debug nginx (si tu binario lo permite). Solo agregue en el server {
bloque:
error_log /var/log/nginx/debug.log debug;
y ver allí todos los redireccionamientos internos, etc.