Nginx try_文件&;重写&;内容类型

Nginx try_文件&;重写&;内容类型,nginx,content-type,Nginx,Content Type,我目前正在从lighttpd迁移到nginx。 我有一些奇怪的文件(不要问为什么): 1.比如说一个名为“news”的文件,它实际上应该更像news.txt 2.一个名为“.html”的文件,实际上应该是index.html 使用lighttpd,只需重写这些内容即可。 Nginx仍然可以通过try_文件或rewrite找到这些文件,但我无法控制返回的内容类型。我的意思是,如果文件名为“.html”,则内容类型为“application/octetstream” 我知道我可以使用更多的集合标题来

我目前正在从lighttpd迁移到nginx。 我有一些奇怪的文件(不要问为什么): 1.比如说一个名为“news”的文件,它实际上应该更像news.txt 2.一个名为“.html”的文件,实际上应该是index.html

使用lighttpd,只需重写这些内容即可。 Nginx仍然可以通过try_文件或rewrite找到这些文件,但我无法控制返回的内容类型。我的意思是,如果文件名为“.html”,则内容类型为“application/octetstream”

我知道我可以使用更多的集合标题来实现这一点,但是还有其他方法吗?我的意思是为什么nginx认为名为“.html”的文件不是html文件

我的意思是为什么nginx认为名为“.html”的文件不是html文件

在类unix系统中,开始时的点通常用作隐藏文件的指示器。在这种情况下,点后面的部分不是文件扩展名

我知道我可以使用更多的集合标题来实现这一点,但是还有其他方法吗

您应该使用该指令,而不是第三方模块

例如:

location =/.html {
    default_type text/html;
}
我的意思是为什么nginx认为名为“.html”的文件不是html文件

在类unix系统中,开始时的点通常用作隐藏文件的指示器。在这种情况下,点后面的部分不是文件扩展名

我知道我可以使用更多的集合标题来实现这一点,但是还有其他方法吗

您应该使用该指令,而不是第三方模块

例如:

location =/.html {
    default_type text/html;
}

我这样尝试:
location=/{default\u type text/html;}try\u files$uri/index.html$uri/.html$uri.html$uri=404获得403。未继承
try\u files
指令。在您的情况下,它只适用于位置未捕获的请求。我这样尝试:
location=/{default\u type text/html;}try\u files$uri/index.html$uri/.html$uri.html$uri=404获得403。未继承
try\u files
指令。在您的情况下,它只适用于未被位置捕获的请求。