服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

Mod在子域中重写所有丢失的图像

我正在设置一个开发服务器,所以我不再需要直接编辑远程服务器上的文件,并且有版本pipe理的SVN。 由于一些网站的图像很重(3-30gb),我们决定不在SVN存储库中包含图像。 所以我build立了一个给所有子域的虚拟文档根目录的系统,所以http://[user].[domain].testdomain.com得到/working/[user]/[domain]/httpdocs的虚拟文档根这些是所有用户的工作副本。 (我不知道是否相关,但可能是有用的) 然而,为了全面的testing目的,显示图像将是有用的。 dev服务器也作为备份服务器使用,因此所有的镜像都在服务器上。 我想通过一个漂亮的htaccess / PHP脚本组合显示所有缺less的图像。 我目前正在使用这些规则: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} \.(gif|jpg|jpeg|png)$ RewriteRule (.*) http://testdomain.com/fallback.php?image=$1 [L] 但是这不能完全按照计划工作,因为我无法从中获取子域信息。 另外,因为redirecturl包含一个完整的域名,所以它被完全redirect,这使得它成为一个额外的http请求。 理想的设置是,所有丢失的图像都来自一个PHP脚本,位于http://testdomain.com/fallback.php ,图像是从原始的URL(如http://me.webshop.testdomain.com/images/header.png ),但我似乎无法得到它的工作。 这甚至有可能吗? 如果是这样,任何指向我应该做的? ps作为一个奖励,上面提供的规则似乎在user.webshop.testdomain.com域( user.webshop.testdomain.com )上的每个图像请求上触发,但它的工作方式应该是在webshop.testdomain.com ,为什么? //编辑: 这解决了我的问题: RewriteCond %{HTTP_HOST} ^([^\.]+)\.([^\.]+)\.domain\.nl [NC] RewriteCond /working/%1/%2/httpdocs%{REQUEST_URI} !-F RewriteCond %{REQUEST_URI} \.(gif|jpg|jpeg|png)$ RewriteRule (.*) http://domain.nl/fallbackimages/fallback.php?image=$1&host=%{HTTP_REFERER}&oeps=%{HTTP_HOST} [P]