一个目录中文件的两个位置的nginx规则
nginx rule for two locations for files in one directory
我有以下目录:
]# 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
文件。
你已经成功了一半。问题是你使用 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; }
我有以下目录:
]# 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
文件。
你已经成功了一半。问题是你使用 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; }