我完成了一个应用程序,该应用程序具有NGINX托管的下载系统:
下载的网址是:
http://dashboard.myapp.com/download/file-slug
此页面是一个常规的PHP页面,需要一些用户输入,然后PHP处理实际的文件下载,它不是文件的直接路径。
由于这些下载网址将公开发布,因此我想抛弃该信息中心子域名。
默认域名(myapp.com)已经在使用wordpress设置:
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
有一种简单的方法可以获得:
http://myapp.com/download/file-slug
表现得好像:
http://dashboard.myapp.com/download/file-slug
访问了,没有实际重定向?
答案 0 :(得分:1)
试试这个 - 放在myapp.com的服务器块中,放在另一个位置块之外的任何地方。将根设置为与dashboard
子域相同的根(如果在同一服务器上)。该脚本会将自己视为myapp.com
而不是dashboard.myapp.com
,但它应该保留其余的框架规则。如果这不起作用,请尝试下一个选项。
location /download/file-slug {
root /path/folder;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
另一种选择是通过Nginx进行代理。此选项实际上在当前位置运行脚本,像客户端通过dashboard.myapp.com
一样访问它。请参阅proxy_pass上的Nginx.org文档。
location /download/file-slug { proxy_pass http://dashboard.myapp.com/download/file-slug; }
答案 1 :(得分:0)
我只能用Nginx解决这个问题。
在myapp.com配置文件中,我添加了:
location ~ /download/(.*) {
resolver 8.8.8.8;
proxy_pass http://dashboard.myapp.com/download/$1;
}
解析器8.8.8.8实际上使用的是Google DNS。如果没有这一行,我会得到一个“无法解析的解析器”错误。