将mod_rewrite swf文件转到另一个目录

时间:2012-01-26 12:45:30

标签: regex apache mod-rewrite url-rewriting rewrite

我正在客户的网站上工作,过去通过产品代码在目录中包含所有.swf文件,例如。 g18/g18_flashfile.swf但现在我已将其移至assets/flash/g18_flashfile.swf

由于外部网站链接到文件,我尝试将请求mod_rewrite到新位置。这只是错误500s

RewriteRule ^([^/]+)/([^.]+)\.swf$ assets/flash/$1/$2\.swf [L]

我也不能只是重定向,因为我已经在使用以下

RewriteRule ^(.*)/$ product.php?ref=$1 [L]

任何帮助都会很棒,因为我在这个问题上摸不着头脑。

修改

当我做的时候甚至更奇怪

RewriteRule ^([^/]+)/([^.]+)\.swf$ assets/flash/$1/$2\.html [L]

它有效(显然它是404s,因为没有.html文件),但重写有效。有谁知道swf是否是mod_rewrite中使用的某种术语?

1 个答案:

答案 0 :(得分:1)

正则表达式

^([^/]+)/([^.]+)\.swf$

匹配g18/g18_flashfile.swfassets/flash/g18_flashfile.swf。由于L标志might not work as you expected,这是一个问题。

只需更改正则表达式,使其与重写的路径不匹配:

RewriteRule ^([^/]+)/([^/.]+)\.swf$ assets/flash/$1/$2\.swf [L]