我可以发布另一个网站's图像,因为它是我的htaccess mod_rewrite


Can I publish another site's image as it is mine with htaccess mod_rewrite?

我知道这个问题看起来有点吓人,但我找不到更好的方式来问。

我有几个网站,有很多常见的图像。因此,我决定从一个来源发布通用文件,以避免使用更多的磁盘空间。但我也不希望访问者知道它,并希望显示所有内容从自己的域名发布。

我可以通过请求http://domain1.com/image.jpg从http://domain2.com/image.jpg获得图像吗?我尝试了一些组合,但都不成功!

谢谢!

如果资源在同一个地方,你可以很容易地配置你的web服务器从不同的位置提供服务,例如,Apache的虚拟主机配置应该像这样:

<VirtualHost *:80>
    DocumentRoot /var/path/to/images
    ServerName domain1.com
    ServerAlias domain2.com
</VirtualHost>

根据附加信息

更新

如果您希望从domain1.com/imagesdomain2.com/images提供图像,您可以通过两种方式实现。

1)为同一个镜像文件夹创建两个别名的虚拟主机:

<VirtualHost *:80>
    DocumentRoot /var/path/to/domain1.com/files
    ServerName domain1.com
    Alias /images/ /var/path/to/images
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/path/to/domain2.com/files
    ServerName domain2.com
    Alias /images/ /var/path/to/images
</VirtualHost>
2)创建一个符号链接,例如:

$ ln -s/var/path/to/images/var/path/to/domain1.com/files

$ ln -s/var/path/to/images/var/path/to/domain2.com/files

在上述两种情况下,您都在映射相同的位置,这只是一种不同的方法。

我会尝试将图像请求路由到一个php文件,该文件知道如何将请求映射到正确的url,然后发送正确的http头并包含图像。

假设domain1.com和domain2.com在同一个本地网络上,那么我建议创建到共享图像文件夹的符号链接,这样它们就可以在每个站点中访问,就好像它们是本地目录一样。你需要在你的htaccess文件中启用符号链接,但这比使用mod-rewrite要麻烦得多。

如果它们不在同一个网络上,那么使用301重定向到替代域上的相同文件名的mod重写应该可以做到这一点。

另一件值得一提的事情是,通常从第二个域名提供图像是一种很好的做法。例如,如果你去Yahoo,你会发现他们的图像是从yimg.com的子域提供的,即使你已经导航到yahoo.com。这是优化站点性能的良好实践,因为浏览器和web服务器都限制了它们可以从同一域同时下载的文件数量,因此将单个页面上的请求拆分为多个域,可以同时提供更多文件,并减少每个服务器上的负载。因此,您最好的选择可能是将图像放在一个中心位置,以便在它们自己的域下为所有域提供服务。

相关文章: