【发布时间】:2015-06-02 12:55:39
【问题描述】:
我即将开始开发一个新网站,它将使用相同的数据库和相同的图像。它们都将托管在同一托管专用服务器中。我真的不想复制 images 文件夹,也不想使用绝对网址:<img src="http://www.site1.com/images/img.png" ... />
这样做的最佳解决方案是什么?
【问题讨论】:
标签: apache .htaccess virtualhost
我即将开始开发一个新网站,它将使用相同的数据库和相同的图像。它们都将托管在同一托管专用服务器中。我真的不想复制 images 文件夹,也不想使用绝对网址:<img src="http://www.site1.com/images/img.png" ... />
这样做的最佳解决方案是什么?
【问题讨论】:
标签: apache .htaccess virtualhost
您向每个虚拟主机配置添加另一个 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>
现在您可以在两个站点中使用像<img src="/images/img.png"> 这样的图像,请求将被路由到同一个物理文件夹。
显然还有其他解决方案,使用环回接口将图像文件夹内部挂载到文件系统中的第二个位置或使用符号链接。不过上面是我眼中最优雅的……
【讨论】:
htdocs |---site1 |---site2所有主要内容都在site1中,是否可以为/images/img.png制定site2的重写规则以实际显示来自../site1/images/img.png的图片?