我无法理解为什么我尝试配置的位置别名无法正常工作。
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