无法从 url 中删除 .html

Cannot remove .html from url

我有一个静态站点,我正在尝试从 url 中删除 .html,所以当我访问站点 www.example.com/home.html 时,我应该得到:www.example.com/home.

这是我的项目结构:

project
    docker
       nginx
           conf.d
               default.conf
    www
        index.html
        home.html
        services.html
docker-compose.yml

这是 docker-compose.yml 文件:

version: '3.6'

services:
  my-app:
    container_name: trasauto_nginx
    image: nginx:stable-alpine
    restart: always
    volumes:
      - "./www/:/usr/share/nginx/html"
      - ./docker/nginx/conf.d/:/etc/nginx/conf.d
    expose:
      - 80

networks:
  default:
    external:
      name: proxy

这是 default.conf:

server {
    try_files $uri.html $uri $uri/ =404;
}

我试图从 url 中删除 .html 部分,但由于某种原因我得到:

404 not found

我做错了什么?

您需要在 Nginx 配置中添加更多行才能获得您想要的内容。我认为这个问题已经得到了详细的回答

已编辑。 这是一个应该工作的 Nginx 配置示例

server {
    listen 80;    
    index index.html;

    root /usr/share/nginx/html;

    location / {
        if ($request_uri ~ ^/(.*)\.html) {
            return 302 /;
        }
        try_files $uri $uri.html $uri/ =404;
    }
}

您需要指定提供静态文件的根目录。