【发布时间】:2009-12-03 02:54:53
【问题描述】:
我正在努力解决涉及 .css 文件的 mod_rewrite 问题,这些文件由引用图像的“程序”动态提供。我说“程序”是因为技术栈有点晦涩,但只要在其中插入你最喜欢的技术 [perl | php |爪哇]。
使用以下 URL 从页面引用 CSS 文件:
http://server/dir/subdir/file-program?site-id=1234&fname=stylesheet.css
CSS 的内容包括如下图片引用:
background-image:url('hello.png');
...
background-image:url('world.png');
浏览器将这些引用解释为 /dir/subdir/*.png。
我想要做的是使用引用者的 URL 重写所有这些请求,因此它们最终看起来像:
http://server/dir/subdir/file-program?site-id=1234&fname=hello.png
http://server/dir/subdir/file-program?site-id=1234&fname=world.png
请注意,站点 ID 是可变的,因此我确实需要引用引荐来源网址来获取整个查询字符串。抱歉,我在原帖中忽略了这一点。
换一种说法:任何来自 ...file-program...*.css 的图像引用都应该被重写以使用该 CSS 的 URL(包括查询字符串),只需将图像文件名替换为 css 文件名字。
任何帮助将不胜感激。
【问题讨论】:
-
你不能只修复文件程序来生成这样的 URL 吗?
-
Dominic,我希望事情就这么简单。不幸的是,“文件程序”不是开源的或我控制的东西。它可能会在产品的未来版本中发生变化,但目前我认为 mod_rewrite 是解决它的最快方法。
标签: mod-rewrite