我将所有图像集中到服务器上的一个文件夹中。我有几个网站使用一个集中式引擎来获取每个域的各自内容。图片的目录结构为:
images/
website1.com/
image1.jpg
image2.jpg
...
website2.com/
image1.jpg
image2.jpg
...
website3.com/
image1.jpg
image2.jpg
...
但是,当我从 HTML 请求这些图像资源之一时,我不想使用 URL:
http://website1.com/images/website1.com/image1.jpg
相反,我只是想要:
http://website1.com/images/image1.jpg
但是,有两种情况我需要翻译。实时服务器和开发服务器。现场案例似乎很简单,将 %{HTTP_HOST} 重写到路径中。开发服务器的情况略有不同。我使用一个名为 dev_domain 的 cookie 来查看测试站点。即:$_COOKIE['dev_domain'] = website1.com。
制作现场案例和开发服务器案例的规则是什么?
这是我到目前为止的开发案例,但它不起作用:
RewriteBase /
RewriteCond %{HTTP_COOKIE} dev_domain=([^;]+) [NC]
RewriteCond %{THE_REQUEST} ^/images/(.*)$
RewriteRule ^/images/(.*)$ images/%1/$1 [NC,L]
这是我为现场案例所拥有的,尚不确定它是否有效,因为我没有将其推送到现场(条件是排除开发服务器):
RewriteCond %{HTTP_HOST} !^dev.mainsite.com$
RewriteRule ^/images/(.*)$ /images/%{HTTP_HOST}/$1 [NC,L]
关于我做错了什么的任何想法?