Apache RewriteRule将所有文件请求重定向到php处理程序

时间:2013-03-19 16:40:08

标签: regex apache url-rewriting

我正在尝试获得一个重写规则,允许以下列形式请求的任何文件:

/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'

1 个答案:

答案 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,我不知道它对正则表达式有什么影响。

相关问题