[英]Apache rewriter - Complex rewriter for files without extension
我需要重写对mydomain.com/storage/archive/ab7572d3-c697-4cfa-9b23-71b6f9c388d1 上的文件的所有请求
至
mydomain.com/public/storage/archive/ab7572d3-c697-4cfa-9b23-71b6f9c388d1 _
所以我在 url 中添加了“public”,仅此而已。 文件存储如上图所示:36 个字符,无扩展名。 因此,我正在寻找一个正则表达式来匹配/storage/archive/后跟 36 个字符的长文件名,不带扩展名
我正在尝试通过 .htaccess 文件来实现。
使用RewriteRule
匹配整个路径并将您的新父级添加到它之前:
RewriteEngine on
RewriteRule ^/(storage/archive/[0-9a-f-]{36}.*) /public/$1 [R]
正则表达式本身非常基本:
^
匹配路径的开头/
匹配文字正斜杠(…)
将这个带括号的部分捕获为$1
storage/archive/
(文字匹配)[0-9a-f-]{36}
匹配任何 [digit, letter from a
to f
, or a dash] 36次.*
加上您看到的任何其他内容(注意,这不包括查询字符串) (是的,我本可以将第一个斜线放在捕获中,但我希望在使用/public
重建它时更清晰;否则,它将是/public$1
。相同的功能,但不太清晰。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.