2009-11-11 25 views
1

我试图做这样的事情在我的.htaccess文件如下:基于mod_aliased目录下文件的存在,不可能mod_rewrite?

Alias /assets /location/of/files 

RewriteCond %{REQUEST_URI} ^/assets/[0-9]+.jpg$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* /build_thumbnail.cfm?path=%{REQUEST_URI} [QSA,L] 

所以理论上它是相当简单:

  • 的图像从URL请求的开始/资产/
  • 的文件
  • 存在apache的检查发现,该文件送达
  • 如果没有,脚本运行,而不是

这在其他地方工作正常,但这是我第一次尝试使用它作为别名包含的目录。据我所知,Mod Rewrite在Mod Alias之前运行,肯定会导致这种情况不起作用(事实上,我的Alias线路在apache conf中,其余的在.htaccess中)。

有没有办法让Mod Rewrite确认Aliased目录?

是否可以将Alias行更改为Rewrite行?

+0

在我来说,我设法从我的Apache配置去掉Alias指令,并把软链接到文件系统,而不是要解决的问题。如果你在窗户上,可能没什么用处。 – 2009-11-13 08:28:55

回答

0

尝试-F,而不是调用子请求:

RewriteCond %{REQUEST_URI} ^/assets/[0-9]+.jpg$ 
RewriteCond %{REQUEST_FILENAME} !-F 
RewriteRule .* /build_thumbnail.cfm?path=%{REQUEST_URI} [QSA,L] 
+0

有趣的想法,我不知道你可以做到这一点。不幸的是,仍然没有为我工作。 #这只是404s(看起来像资产的别名映射 #在apache conf意味着它甚至没有在这里) RewriteCond%{REQUEST_URI} ^/assets/[0-9] +。jpg $ RewriteRule。* /build_thumbnail.cfm [QSA,L] #这是可行的,因为img是web根目录中的一个真实目录 RewriteCond%{REQUEST_URI} ^/img/[0-9] + .jpg $ RewriteRule。* /build_thumbnail.cfm [QSA,L] – 2009-11-13 08:25:58

相关问题