繁体   English   中英

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/$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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM