NGINX从后端的另一个URL下载文件
NGINX conf文件regex完全是新手。我正在运行一个在nginxweb服务器下运行的PHP脚本。我试图让访问者下载一个与URL不同的附加文件。例如,如果链接为:NGINX从后端的另一个URL下载文件,url,redirect,nginx,download,hide,Url,Redirect,Nginx,Download,Hide,NGINX conf文件regex完全是新手。我正在运行一个在nginxweb服务器下运行的PHP脚本。我试图让访问者下载一个与URL不同的附加文件。例如,如果链接为: http://mysite.com/attachement/sample.jpg 它实际上将从另一个目录“media/upload”提供文件 根据一些研究,我添加了如下内容 location /attachment/ { try_files $uri /media/uploaded/$uri; } 但它不
http://mysite.com/attachement/sample.jpg
它实际上将从另一个目录“media/upload”提供文件
根据一些研究,我添加了如下内容
location /attachment/ {
try_files $uri /media/uploaded/$uri;
}
但它不起作用。我的意图是不让用户浏览器重定向到查看URL的页面,只需下载文件扩展名,如*.png、*.jpg、*.zip等。这个脚本在Apache中工作得很好,但在Nginx中没有
虽然这并不重要,但出于明显的安全原因,我想知道是否也可以让他们下载*.php、*.fla文件而不执行它们。我记得很久以前使用的支持票系统也允许这样做。不知道是否有可能从Nginx conf文件中删除它
谢谢。如果您想让它们像一面精确的镜子,最简单的方法是使用
别名
location /attachment/ {
alias /media/uploaded;
}
如果要使用try_files
,则需要指定root
location ~ /attachment/(.*) {
root /media/uploaded;
try_files $1 =404; # or replace '=404' with any fallback rule
}
您的规则不起作用,可能是因为$uri
已经包含/attachment
,所以正在测试的URL是/media/upload/attachment/image.jpg
,它不存在,可以像我在第二种方法中那样使用regex进行修复,但这太费事了,您的案例更适合于alias
如果您希望它们像一面镜子,最简单的方法是使用alias
location /attachment/ {
alias /media/uploaded;
}
如果要使用try_files
,则需要指定root
location ~ /attachment/(.*) {
root /media/uploaded;
try_files $1 =404; # or replace '=404' with any fallback rule
}
您的规则不起作用,可能是因为$uri
已经包含/attachment
,所以正在测试的URL是/media/upload/attachment/image.jpg
,它不存在,可以像我在第二种方法中那样使用regex进行修复,但这太费事了,您的案例更适合使用alias,谢谢您的提示。它们都不起作用,但能够通过alias添加更多代码
location /attachment/ {
alias /media/uploaded;
}
location ~ ^/attachment/([^\s]+(?=\.(jpg|gif|png|zip|))\.\2) {
alias /home/websites/public_html/media/uploaded/$1;
}
从另一个帖子得到提示(忘了在哪里了)。谢谢 谢谢你的提示。它们都不起作用,但能够通过alias添加更多代码
location ~ ^/attachment/([^\s]+(?=\.(jpg|gif|png|zip|))\.\2) {
alias /home/websites/public_html/media/uploaded/$1;
}
从另一个帖子得到提示(忘了在哪里了)。谢谢 在服务器块级别的配置中是否有适当的根目录
?在服务器块级别的配置中是否有适当的根目录
?