我想将带有版本化文件名的非现有文件重定向到当前版本。根据请求的文件名中的模式,有两个目标文件。
例如,当前文件是 setup-win-3-1-0.exe 对 setup-win-2-7-1.exe (不存在)的请求将重定向到上一个。 (并且setup-mac-2-7-1.dmg将转到setup-mac-3-1-0.dmg)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^setup-win-[^.]+\.exe$ setup-win-%{ENV:DOWNLWIN}.exe [L,R=301,NC]
RewriteRule ^setup-mac-[^.]+\.dmg$ setup-mac-%{ENV:DOWNLMAC}.dmg [L,R=301,NC]
(之前设置ENV:DOWNL,为清楚起见省略)
我一直在网上搜索并发现一些矛盾,我发现RewriteCond只适用于下一个RewriteRule以及它应用的其他地方,直到它用Last标志填充RweriteRule。
答案 0 :(得分:1)
RewriteCond是否适用于这两条线?
答案是否。 RewriteCond
仅适用于最近的RewriteRule
。它永远不会应用于使用RewriteRule
指令定义的多个规则。
替代方法:如果您在所有规则之前不想一遍又一遍地想要RewriteCond
,那么使用与{{相反的单独的** skip-all *规则1}}。请考虑以下示例:
RewriteCond