// conf
server {
listen 80;
location /x {
root /templates;
index x.html;
}
location / {
root /templates;
index index.html;
}
}
//
// Folder
tempalets
| - index.html
| - x.html
I go to url domain.com, it's will show index.html
But, I go to url domain.com/x, it's will show 404 Not Found.
And, I try domain.com/x.html, it's will show x.html.
Why url domain.com/x doen't show x.html?
How could I go to url domain.com/x and show x.html?
I don't want that .html in the url.
CodePudding user response:
Alternative 1:
Use try_files. Below it concatenates the extension (.html), so when requesting /x it first checks if the file /templates/x.html exists, then /templates/x, otherwise it 404s.
server {
listen 80;
location / {
root /templates;
try_files $uri.html $uri =404;
index index.html;
}
}
Alternative 2:
Upload the HTML files without the extension and set the default_type (MIME) to text/html.
default_type 'text/html';
