Nginx位置块别名

时间:2017-09-07 10:46:01

标签: nginx location block alias

我无法理解为什么我尝试配置的位置别名无法正常工作。

location /i/ {
   alias /var/www/vhosts/example.com/html/wp-content/images/;
}

如果我浏览 https://example.com/i/logo.jpg ,我会收到404,并在日志中看到: " /var/www/vhosts/example.com/html/i/logo.jpg"失败(2:没有这样的文件或目录)

如果我点击 https://example.com/i/ ,我会收到403禁止,因为它会尝试列出别名真实目录的内容(正确行为)。

如果我点击 https://example.com/i (请注意缺少尾随/),则请求会永久旋转并超时(正确行为)。

所以我尝试了正则表达式,然后想出了这个:

location ~ ^/i/(\.*)$ {
   alias /var/www/vhosts/example.com/html/wp-content/images/;
}

然而,这显示出与上面提到的第一个位置块相同的行为。

所以我尝试使用root指令,但这是不可取的,因为root在请求中使用$ uri字符串,因此最终将/ i /附加到/ images / path的末尾。

所以我的问题是,我怎样才能在{alal / www / vhosts / examples / html / wp-content / images / public / {3}}?我错过了一些明显的东西吗或者Nginx真的不喜欢这样做吗?

为清楚起见,运行Nginx 1.12.0,PHP7-FPM

0 个答案:

没有答案