在Windows上测试正常,部署在linux上报404,最后查到是跟某两个文件使用了大写有关,而代码中使用小写。
(以下内容转载,未经测试)
在类unix主机上,文件系统是区分大小写的,但在网络上却需要忽略大小写,比如一些网友上传照片的时候,图片后缀名一般是大写的。这将会导致我们前端缓存服务无法缓存或进行重复缓存,影响效率。
如果使用nginx,在配置location时,可以用~*忽略大小写,例如:
location ~* \.(ftpquota|htaccess|htpasswd)?$ {
# ~*表示忽略大小写
deny all;
}
配置squid的acl时,可以用-i忽略大小写,例如:
acl domain dstdomain -i adocode.com
#(-i表示忽略大小写)
http_access deny domain
而在varnish的vcl语法中,可以用(?i)的正则表达式忽略大小写,例如:
if (req.http.referer !~ "(?i)icodex.org") {
# (?i)表示忽略大小写
error 404;
}
来源:网络(http://www.zzvips.com/article/53845.html)