无法重写Flash文件的名称:
/flash/shell.1257347618.swf(数字是一个不断变化的时间戳,想法是绕过浏览器缓存)。
我的.htaccess看起来像这样:
#Use mod.rewrite
RewriteEngine On
#Cache files which are autoversioned
ExpiresActive On
<FilesMatch "\.(swf)$">
ExpiresDefault "access plus 10 years"
</FilesMatch>
#Remove autoversion timestamp
RewriteRule ^(swf)/(.+)\.([0-9]+)\.(swf)$ $1/$2.$4 [L]
这是从第三方传递给我的,但它没有正确匹配,我只是不擅长正则表达式。那里的任何人都可以帮助我吗?
我正在测试的网址类似于:
http://dev.somedomain.domain.com/flash/shell.1257347618.swf
我已将.htaccess文件安装到flash目录。
答案 0 :(得分:0)
您使用flash /但规则假设为swf /,更改为:
RewriteRule ^(flash)/(.+)\.([0-9]+)\.(swf)$ $1/$2.$4 [L]
答案 1 :(得分:0)
如果所有文件都在 folderName 文件夹中并且扩展名为 .swf ,则可以使用以下命令:
RewriteRule ^folderName/([^.]+)\.\d+\.swf$ folderName/$1.swf [L]
更新以匹配同一文件夹中的不同文件类型:
RewriteRule ^folderName/([^.]+)\.\d+\.(\w+)$ folderName/$1.$2 [L]
答案 2 :(得分:0)
无论您的文件夹名称和文件名是什么规则:
RewriteRule ^([^/]+)/([^.]+)\.[0-9]+\.swf$ $1/$2.swf [L]
会将somefolder/file.329873.swf
转换为somefolder/file.swf
。
如果您需要允许包含topfolder/somefolder/file.329873.swf
等子文件夹的文件,并希望保留所有文件夹层次结构:
RewriteRule ^(.+)/([^.]+)\.[0-9]+\.swf$ $1/$2.swf [L]
如果您的名字可能没有数字部分,请使用
RewriteRule ^([^/]+)/([^.]+)(\.[0-9]+)?\.swf$ $1/$2.swf [L]
最终答案在评论中。问题是.htaccess与.swf文件位于同一文件夹中,因此我们需要删除正则表达式中的文件夹,如下所示:
RewriteRule ^(.+)\.[0-9]+\.swf$ $1.swf [L]