【问题标题】:Common image folders for 2 different sites2 个不同站点的通用图像文件夹
【发布时间】:2015-06-02 12:55:39
【问题描述】:

我即将开始开发一个新网站,它将使用相同的数据库和相同的图像。它们都将托管在同一托管专用服务器中。我真的不想复制 images 文件夹,也不想使用绝对网址:<img src="http://www.site1.com/images/img.png" ... />

这样做的最佳解决方案是什么?

【问题讨论】:

    标签: apache .htaccess virtualhost


    【解决方案1】:

    您向每个虚拟主机配置添加另一个 Alias 条目。这样您就可以在两个页面中创建一个“虚拟‘图像’文件夹”,该文件夹在内部解析为物理文件系统中的同一文件夹:

    <VirtualHost *:80>
        ServerName www.site1.com
        [...]
        Alias /images /path/to/physical/images/folder
        <Directory /path/to/physical/images/folder>
            Order allow,deny
            Allow from all
            [...]
        </Directory
        [...]
    </VirtualHost>
    

    .

    <VirtualHost *:80>
        ServerName www.site2.com
        [...]
        Alias /images /path/to/physical/images/folder
        <Directory /path/to/physical/images/folder>
            Order allow,deny
            Allow from all
            [...]
        </Directory
        [...]
    </VirtualHost>
    

    现在您可以在两个站点中使用像&lt;img src="/images/img.png"&gt; 这样的图像,请求将被路由到同一个物理文件夹。

    显然还有其他解决方案,使用环回接口将图像文件夹内部挂载到文件系统中的第二个位置或使用符号链接。不过上面是我眼中最优雅的……

    【讨论】:

    • 感谢 arkascha 的回复。问题是我由 1and1 托管并且有一个托管的专用服务器,所以我认为我无法编辑虚拟主机配置......或者这可以使用 .htaccess 来完成吗?
    • 好的,我之前明白你对系统有真正的控制权。但是,您如何为两个不同的域提供服务,并且仍然在它们之间共享部分文件系统呢?这有可能吗?我希望它们被严格分开?
    • 目前,不同域之间没有共享任何内容,我唯一需要共享的是“images”文件夹。关于数据库,我知道我可以使用相同的用户名和代码,因为它在同一台服务器中:)
    • 那么,可以从两个不同的域访问文件系统中的同一个文件夹吗?您没有回答...如果基础不可用,那么考虑 http 服务器配置的意义不大。如果不是,您可以考虑在重写规则中使用 apache 的代理模块从后台的“主”域中获取图像,但这既丑陋又慢。
    • 嗨,是的,我可以从 2 个不同的域访问同一个文件夹,我没有尝试过,但我想这是可能的......“site1”的内容在“htdocs”的文件夹中":htdocs |---site1 |---site2所有主要内容都在site1中,是否可以为/images/img.png制定site2的重写规则以实际显示来自../site1/images/img.png的图片?
    猜你喜欢
    • 1970-01-01
    • 2018-11-25
    • 2019-03-29
    • 2014-03-07
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多