重定向/下载URI到同一域的子域



我完成了一个应用程序,它的特点是一个下载系统,托管在NGINX:

http://dashboard.myapp.com

下载的URL是:

http://dashboard.myapp.com/download/file-slug

这个页面是一个普通的PHP页面,需要一些用户输入,然后PHP处理实际的文件下载,它不是文件的直接路径。

由于这些下载url将是公开可用的,我想放弃仪表板子域。

默认域名(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

被访问,而没有实际重定向?

试试这个-在你的服务器块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访问它一样。请参阅Nginx.org上的proxy_pass文档。

location /download/file-slug { proxy_pass http://dashboard.myapp.com/download/file-slug; }

我只能用Nginx来解决这个问题。

在myapp.com配置文件中,我添加了:

    location ~ /download/(.*) {
            resolver 8.8.8.8; 
            proxy_pass http://dashboard.myapp.com/download/$1;
    }

解析器8.8.8.8实际上使用的是Google DNS。如果没有这一行,我就会得到一个"没有解析器定义来解析"的错误。

相关内容

  • 没有找到相关文章

最新更新