Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何阻止媒体文件的热链接?_Ruby_Ruby On Rails 3_Hotlinking - Fatal编程技术网

Ruby 如何阻止媒体文件的热链接?

Ruby 如何阻止媒体文件的热链接?,ruby,ruby-on-rails-3,hotlinking,Ruby,Ruby On Rails 3,Hotlinking,我有swf和图像文件,可以从其他网站热链接,如在这里 我如何使用仅从我的网站查看我的swf文件 编辑 我的文件托管在我的服务器上,我没有使用Amazon S3服务或其他文件托管服务。您应该确保referrer链接的域与您的域相同,就像您有nginx一样: location ~* (\.swf)$ { valid_referers blocked mydomain.com www.mydomain.com; if ($invalid_referer) ) { ret

我有swf和图像文件,可以从其他网站热链接,如在这里 我如何使用仅从我的网站查看我的swf文件

编辑


我的文件托管在我的服务器上,我没有使用Amazon S3服务或其他文件托管服务。

您应该确保referrer链接的域与您的域相同,就像您有nginx一样:

location ~* (\.swf)$ {
    valid_referers blocked mydomain.com www.mydomain.com;
    if ($invalid_referer) ) {
        return 444;
    }
}
请注意,
nil=~regex#=>nil
,因此您不需要首先检查
request.env['HTTP\u REFERER']
是否存在

编辑:

有关=~运算符的详细信息:, ,


这是nginx配置文件。这种工作不应该在应用程序逻辑中完成,apache/nginx将更容易、更快地完成。但是,我正在heroku上托管我的应用程序,我不知道这是否可能。请告诉我在哪里可以阅读关于nil=~regex\#=>nil的内容?那接线员呢?我需要对自己进行教育
if request.env['HTTP_REFERER'] =~ /yourdomain\.com\//
  # serve asset
end
$ irb
> nil =~ /something/
=> nil