Wie füge ich auf Nginx eine andere Datei als index.html hinzu?

Wie füge ich auf Nginx eine andere Datei als index.html hinzu?

Ich bin also ziemlich neu hier und habe einen Nginx-Server für eine einfache Webseite eingerichtet. Die Konfiguration, die ich habe, sites-availableist:

server {
    listen 80 default_server;

    root /var/www/mywebsite/;
    index /html/index.html;

    server_name mywebsite.com www.mywebsite.com;

    location / {
            try_files $uri $uri/ =404;
    }
}

Und meine index.html befindet sich in dieser Struktur:

+------+   +----------+    
+ html +-->+index.html|    
+------+   +----------+    
       |      
       |   +--------------+
       +-->+scnd_page.html|
           +--------------+

Wenn ich zugreife mywebsite.com, sehe ich index.html. Wie kann ich mywebsite.com/scnd_page/darauf verweisen send_page.html?

Ich habe versucht, einige Sachen zu erstellen

location /scnd_page { 
}

Aber ich bin nicht sicher, ob ich auf dem richtigen Weg bin. Ist das überhaupt mit dieser Datei möglich?

Antwort1

Du könntest benutzenrewriteum sicherzustellen, dass externe Weiterleitungen erfolgen, so dass sie .htmlfür den Benutzer nie sichtbar sind, undtry_filesum die eigentlichen Dateien bereitzustellen.

location / {
    rewrite     ^(/.*)\.html$   $1  redirect;
    try_files $uri $uri/index.html $uri.html =404;
}

Ich würde allerdings nicht empfehlen, einen abschließenden Schrägstrich zu unterstützen , /$um zu implizieren \.html$; die Logik für eine solche Unterstützung wäre etwas hässlich und außerdem würde es zusätzliche Probleme verursachen, wenn Sie versuchen, relative URLs innerhalb der besagten zu verwenden scnd_page.html.

Antwort2

Sie können den Indexparameter einfach im Standortblock konfigurieren:

location /html/scnd_page { index scnd_page.html; }

Sie können die Datei scnd_page.html auch einfach global als „sekundären“ Index definieren:

server {

listen 80 default_server;

root /var/www/mywebsite/;
# carefull setting '/html/index.html'...
index index.html scnd_page.html;

server_name mywebsite.com www.mywebsite.com;

location / {
        try_files $uri $uri/ =404;
}

}

verwandte Informationen