nginx规则用于一个目录中文件的两个位置

时间:2015-11-24 19:42:10

标签: nginx location webserver rule

我有以下目录:

]# ls /srv/web/logs/
yellow-log  blue-log  log.css

我想要两个链接:

  • example.com/yellow-log
  • example.com/blue-log

nginx规则对此应该是什么样的?我试过了:

location ~* ^/(?:yellow|blue)-log(?:/|.html)?$ {
    alias /srv/web/logs;
}

但是抱怨缺少索引。我只是希望在为它们发出请求时提供这些页面,并且两者都应该驻留在同一目录中。两者都使用相同的log.css文件。

1 个答案:

答案 0 :(得分:1)

你有一半的解决方案。问题是你使用alias表示root而你没有CSS文件的路径。假设CSS文件是相对于HTML文件的,它的URI实际上是example.com/log.css。日志文件没有扩展名,因此需要default_type

一个解决方案是:

location ~* ^/(?:yellow|blue)-log$ {
  default_type text/html;
  root /srv/web/logs;
}
location = log.css { root /srv/web/logs; }