我在apache文档,google和stackoverflow上花了相当多的时间,我无法解决我的问题。以下是一些背景知识:我将图像以blob格式存储在数据库中。我有一个名为imageRender.php的脚本,它接受图像的名称作为查询字符串,并在图像标记内回显图像。
<img src='/script/imageRender.php?name=foo'/>
为了简化src属性,我试图使用apache mod_rewrite将更简单的src映射到上面的那个。
<img src='image=foo'/>
我的相关重写代码是:
RewriteCond %{REQUEST_URI} image=(.*)$
RewriteRule . /scripts/imageRender.php?name=%1 [L]
重写日志的相关部分是:
(2) init rewrite engine with requested uri /image=foo
(1) pass through /image=foo
(3) [perdir M:/sample/website/] strip per-dir prefix: M:/sample/website/image=foo -> image=foo
(3) [perdir M:/sample/website/] applying pattern '.' to uri 'image=foo'
(4) [perdir M:/sample/website/] RewriteCond: input='/image=foo' pattern='image=(.*)$' => matched
(2) [perdir M:/sample/website/] rewrite 'image=foo' -> '/scripts/imageRender.php?name=foo'
(3) split uri=/scripts/imageRender.php?name=foo -> uri=/scripts/imageRender.php, args=name=foo
(1) [perdir M:/sample/website/] internal redirect with /scripts/imageRender.php [INTERNAL REDIRECT]
所以看来我的重写正在调用正确的php脚本;但是,重写日志的最后一行表示它没有将查询字符串附加到uri。事实证明,我的图像都没有渲染。 (我已经测试了我的imageRender.php代码,它在提供适当的查询字符串时效果很好)
在重写日志的倒数第二行,为什么拆分uri ?
我哪里出错?
非常感谢任何帮助。