我使用以下重写规则从不同的目录中检索文件,它运行良好:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((ffmpeg|ffprobe|ffserver|ffplay)-[0-9]+-g[0-9a-z]+\.(?:7z|dmg))$ /pub/$2/snapshots/$1 [L]
但是,只有 30 个文件被保留/pub/$2/snapshots/$1
,旧文件被移动到不同的“归档”目录(例如/pub/archive/$1
)。
/pub/archive/$1
如果文件不再可用,有没有办法重写为/pub/$2/snapshots/$1
?
没有人向您指出的是,根据文档,RewriteCond
s 接受对RewriteRule
. 因此,在您当前正在测试请求不是常规文件的地方,您可以检查首选替换是文件。对您的后备替换重复此操作。
编辑:RewriteCond
您评论中的s 没有意义,第一部分应该是测试的主题,第二部分应该是测试。你把对规则的反向引用放在主题中。显然,你已经试过了,试试这个:
RewriteCond /pub/$1/snapshots/$0 -f
RewriteRule ^(ffmpeg|ffprobe|ffserver|ffplay)-[0-9]+-g[0-9a-z]+\.(?:7z|dmg)$ /pub/$1/snapshots/$0 [END]
RewriteCond /pub/archive/$0 -f
RewriteRule ^(?:ffmpeg|ffprobe|ffserver|ffplay)-[0-9]+-g[0-9a-z]+\.(?:7z|dmg)$ /pub/archive/$0 [END]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句