对于没有扩展名的html页面,带有s3 bucket和proxy_pass的nginx try_files

时间:2015-08-30 23:06:28

标签: nginx amazon-s3

我有一个包含目录和html文件的s3存储桶。我在存储桶前面使用了nginx,并为存储桶配置了一个proxy_pass,工作正常。我想要没有html扩展名的干净URL,并且这些URL可以正确解析。例如,代替foo.com/bar/my-file-name.html,必须可以在foo.com/bar/my-file-name

访问

这里的主要问题是如何防止在每个URL的末尾都要求.html。在中,我希望nginx处理每个请求的路由并尝试查找扩展名为.html的文件,然后返回它。

我的问题是,我无法弄清楚如何在非S3网站上强制nginx try_files。当我尝试添加try_files的任何配置时,它会通过在所有路径上返回HTTP 500错误来中断站点。

为了进行比较,这里的配置在非S3支持的站点上很好用(服务器本身的文件):

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

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

我的目标是使用proxy_pass将此行为复制到S3存储桶并强制它尝试使用除index.html以外的.html扩展名的文件名,该文件名开箱即用。

这是我目前的配置很好,除了index.html以外的任何html文件:

location / {

     proxy_pass my-bucket.s3.blahblah/;
}

0 个答案:

没有答案