/test の Nginx 書き換えルールを作成して /test.html を表示する方法

/test の Nginx 書き換えルールを作成して /test.html を表示する方法

そこで私は、自分のサイトを次のような方法で機能させようとしてきました。

example.com の場合は example.com/index.html が表示され、
example.com/test の場合は example.com/test.html
などが表示されます。

現在の設定ファイルは次のようになります:

server {
    listen      80;
    listen      [::]:80;
    server_name example.com;
    root        /var/www/html;
    index index.html index.php;

    location / { 
        try_files $uri.html $uri $uri/ @htmlext;
    }   

    location ~ \.html$ {
        try_files $uri =404;
    }

    location @htmlext {
        rewrite ^(.*)$ $1.html last;
    } 

    error_page 404 /404.html;
}

昨日はグーグルでいろいろ調べたのですが、うまくいきませんでした。よろしくお願いします!

答え1

server {
  listen      80;
  listen      [::]:80;
  server_name example.com;
  root        /var/www/html;
  index index.html index.php;

  location / { 
    try_files $uri $uri.html $uri/ /index.html;
  }

  error_page 404 /404.html;
}

答え2

以下の設定により、次のようになります。

curl http://example.com/test--> 出力: test.html の内容

curl http://example.com/--> 出力: index.html の内容

server {
    listen      80;
    listen      [::]:80;
    server_name example.com;
    root        /var/www/html;
    index index.html index.php;

    location /test {
        try_files $uri.html $uri $uri/;
    }
   
    location / { 
        try_files $uri.html $uri $uri/;
    }   

    location ~ \.html$ {
        try_files $uri =404;
    }

  

    error_page 404 /404.html;
}

関連情報