如何在 nginx 中从任意 url 路径提供静态 html?

如何在 nginx 中从任意 url 路径提供静态 html?

我愿example.com/mypage.html从 开始服务example.com/mypage

在 nginx.conf 中,我尝试mypage.html输入指定的根目录,然后

location /mypage}
 alias mypage.html;
}

但没找到。一定是类似的东西吧?

编辑:如果我将整个路径从“/”放入别名中,它就可以工作,但我更希望它与设置的根目录相关。如何使用以下命令引用我之前在配置中定义的根目录:

root /usr/share/nginx/www;

此外,当我执行此操作并且客户端请求 /mypage 时,nginx 默认为八位字节流文件类型。如何强制将我定义的 URL 设置为 text/html?

答案1

您可以将以下内容添加到您的location /块中,以使其适用于所有页面。这将首先尝试提供请求的 uri,如果不行,它将尝试使用 html 扩展来提供它(而不将其添加到 url)

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

或者如果你希望它只适用于一个页面,你可以将以下内容添加到你的服务器块中

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

相关内容