[英]Rewrite files with certain extension to a specific directory
所以...我有数百万个具有唯一名称的PNG,它们分布在一个复杂的目录结构中,深度达15-20层,我想将它们移到目录/ my / special / directory /
我想不出一种方法来执行重写(不是重定向)
我努力了:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/\.]+).png?$ /my/special/directory/$1.png [R]
但这仅适用于第一级(根)。 我也尝试过
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9/]+)([^/\.]+).png?$ /my/special/directory/$2.png [R]
但这根本不起作用。 我该怎么写?
我正在检查映像是否不存在,因为此虚拟主机中还有其他包含映像的目录,这些目录将保持不变。
TIA
我不太了解您尝试使用的模式: ^([^/\\.]+).png?$
...
为什么?
在末尾? 为什么要明确拒绝文件名中的点? 当然,这仅适用于“第一级”的原因是您明确拒绝接受包含/
的路径,而该路径恰好是文件夹定界符...
也可以使用[L]
代替[R]
因为您不需要重定向。
这给我们:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.png$ /my/special/directory/$1.png [L]
如果您必须重写以仅捕获文件名(实际上取决于链接的结构),那么这可能是一个不错的开始:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule /?([^/]+)\.png$ /my/special/directory/$1.png [L]
注意:第二个变体中没有前导^
,因为您对最后一个文件夹分隔符之前指定的路径不感兴趣...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.