我正在尝试获得一个重写规则,允许以下列形式请求的任何文件:
/assets/files/uploads/306/This-is-an-awesome-file.jpg
由file.php和任何请求的文件处理,例如
/assets/files/uploads/306.jpg
不匹配,只是正常返回文件
路径:/ assets / files / uploads /保证在那里,第四个令牌保证为'number'。'extension'或'number'/'title'。'extension'
答案 0 :(得分:1)
在更一般的正则表达式中,使用/和。逃脱
^\/assets\/files\/uploads\/[0-9]+\/[a-zA-Z0-9_]+\.[a-zA-Z]+$
+表示前面的角色必须至少出现一次。 [something]指定有效的字符范围,因此[a-z]表示任何小写字母,[abc]表示仅允许b c。因此,这里我们要求有一个数字(至少一个数字),然后是斜杠,然后是文件名(我假设文件名为字母数字和下划线,但您可以在[a-zA-Z0-9_]中包含其他内容这是合法的),然后是。和文件扩展名。
^表示一行的开头,$表示结束。您可能需要也可能不需要这些。
不熟悉Apache RewriteRule,我不知道它对正则表达式有什么影响。