【问题标题】:Apache RewriteRule to redirect all files requests to php handlerApache RewriteRule 将所有文件请求重定向到 php 处理程序
【发布时间】:2013-03-19 16:40:08
【问题描述】:

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

/assets/files/uploads/306/This-is-an-awesome-file.jpg

由 file.php 处理,以及任何请求的文件,例如

/assets/files/uploads/306.jpg

不匹配,正常返回文件

路径:/assets/files/uploads/保证在,第四个token保证是'number'.'extension'或者'number'/'title'.'extension'

【问题讨论】:

    标签: regex apache url-rewriting


    【解决方案1】:

    在更一般的正则表达式中,使用 / 和 .逃跑了

    ^\/assets\/files\/uploads\/[0-9]+\/[a-zA-Z0-9_]+\.[a-zA-Z]+$
    

    + 表示前面的字符必须至少出现一次。 [something] 指定了一个有效的字符范围,因此 [a-z] 表示任何小写字母,而 [abc] 表示只允许 a b c。因此,这里我们要求有一个数字(至少一个数字),然后是斜杠,然后是文件名(我假设文件名是字母数字和下划线,但您可以在 [a-zA-Z0-9_] 中包含其他内容是合法的),后跟一个 .和文件扩展名。

    ^ 表示行首,$ 表示行尾。您可能需要也可能不需要这些。

    不熟悉 Apache RewriteRule,不知道对正则表达式有什么影响。

    【讨论】:

    • 谢谢先生。让我走上正轨。最终的解决方案有点不同。我正在编辑您的答案以反映它。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 2017-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 2012-02-06
    相关资源
    最近更新 更多