静态html-css的Nginx配置

jm2pwxwz  于 2023-01-25  发布在  Nginx
关注(0)|答案(1)|浏览(134)

我有下面的nginx配置,

server {
    listen 80;

    root /vol/www/home;
    index /index.html;

    error_page 404 /404.html;
    location = /404.html {
        internal;
    }

    location / {
        try_files $uri $uri/ =404;
    }
    location /about {
        try_files /about.html =404;
    }
}

这是工作得很好,但当我选择一些路径在主页说关于我们页,URI带有完整的文件名,包括结尾的.html。我能够通过在nginx配置中添加一个单独的位置并将所有的href链接更改为该位置而不是文件名来获得这些信息。因此,这是一个变通办法,以获得乘坐,但要运行本地没有服务器,这是不可能的。
我在nginx中看到过一个rewrite配置,但是我没有成功,所以我在这里问一下我如何设置没有html部分的uri,并且不修改uri的href路径而不是filename。
我的配置是这样的,但是不工作

server {
    listen 80;

    root /vol/www/home;
    index /index.html;

    error_page 404 /404.html;
    location = /404.html {
        internal;
    }

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

抛出500错误:处理“/”时重写或内部重定向循环

nuypyhwy

nuypyhwy1#

将其替换为

rewrite ^\/(.*)(\.html)?$ /$1 last;
        try_files $uri $uri/ /index.html =404;

这个

rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;
rewrite ^/(.*)/$ /$1 permanent;

try_files $uri/index.html $uri.html $uri/ $uri =404;

相关问题