我发现了几个类似的问题,但似乎我需要你的帮助,因为我无法自己编写。
我想要这个:http://domain.com/folder/file.123.ext(也应该没有123)
要重写为/folder/file.min.ext(如果存在)
或/folder/file.ext(如果缩小版本不存在)
这是我的css和js文件......所以它会为那些没有文件的文件加载非缩小版本。
我目前有这个:
RewriteRule ^(css|js)/([a-zA-Z_-]+)\.([0-9]+)\.(css|js)$ /$1/$2.min.$4
RewriteRule ^(css|js)/([a-zA-Z_-]+)\.(css|js)$ /$1/$2.min.$3
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(css|js)/([a-zA-Z_-]+)\.min\.(css|js)$ /$1/$2.$3
当我删除第二行时它工作正常...但我需要它也可以没有数字:(
答案 0 :(得分:0)
你不能用这个替换2条规则吗?
RewriteRule ^(css|js)/([a-zA-Z_-]+)(\.[0-9]+)?\.(css|js)$ /$1/$2.min.$4
答案 1 :(得分:0)
继Jon的回答之后,这应解决重定向循环问题:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(css|js)/([a-zA-Z_-]+)(\.[0-9]+)?\.(css|js)$ /$1/$2.min.$4
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(css|js)/([a-zA-Z_-]+)\.min\.(css|js)$ /$1/$2.$3
第一行将阻止附加规则在重定向上执行。
如果您发现任何其他问题或需要进一步调整此问题,请尝试使用RewriteLog和RewriteLogLevel(级别5)来调试规则集并确切了解mod_rewrite正在做什么。