Apache 重写器 - 没有扩展名的文件的复杂重写器
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/ [R]
regex itself 非常基础:
^
匹配路径开头
/
匹配文字正斜杠
(…)
将带括号的部分捕获为 </code>
<ul>
<li><code>storage/archive/
(文字匹配)
[0-9a-f-]{36}
匹配任何 [数字,从 a
到 f
的字母,或破折号] 36 次
.*
加上您看到的任何其他内容(请注意,这 不 包括查询字符串)
(是的,我本可以将第一个斜杠放在捕获中,但我希望在使用 /public
重建它时更清晰;否则,它会是 /public
。相同功能,但不太清晰。)
我需要重写对 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/ [R]
regex itself 非常基础:
^
匹配路径开头/
匹配文字正斜杠(…)
将带括号的部分捕获为</code> <ul> <li><code>storage/archive/
(文字匹配)[0-9a-f-]{36}
匹配任何 [数字,从a
到f
的字母,或破折号] 36 次.*
加上您看到的任何其他内容(请注意,这 不 包括查询字符串)
(是的,我本可以将第一个斜杠放在捕获中,但我希望在使用 /public
重建它时更清晰;否则,它会是 /public
。相同功能,但不太清晰。)