在 htacces 中使用 Regex 进行 Require Statemens

问题描述

我有一个目录 (path/to/directory/),其中有一个 .htacces 使用 Require valid-user 阻止访问以要求进行身份验证。 现在我的任务是允许访问子目录(path/to/director/foobar)以及该子目录中可能存在的任何内容。 我知道如何通过将请求与文件路径匹配来授予对特定文件的访问权限。 但是,我不知道目录内部的结构如何。

我想知道是否可以使用正则表达式检查我的目录名称? 所以我考虑了

<RequireANY>
  #Allow subdirectory
  Require %{REQUEST_URI} ^(.*?(\bfoobar\b)[^$]*)$

  #fallback
  Require valid-user
</RequireANY>

正则表达式在 https://regex101.com/ 中签出以匹配任何 URI,其中包含 foobar。可悲的是,情况并非如此。由于我对 .htacces 相当不熟悉,我是否错过了一些重要的东西?提前致谢

解决方法

您可以将此块与 <if> 表达式一起使用:

<If "%{REQUEST_URI} =~ m#^/path/to/directory/(?!foobar/)#">
  <RequireANY>
    AuthType Basic
    AuthName "Secret Area"
    AuthUserFile /full/path/of/passwords/file
    Require valid-user
  </RequireANY>
</If>

负前瞻正则表达式模式 ^/path/to/directory/(?!foobar/) 将匹配 /path/to/directory/*,除非 foobar/ 紧跟在它之后。

,

我发现这个解决方案正是我所需要的。我在 Shopware 6 and I am using code to do one hot encoding aaa = F.one_hot(torch_qyh,num_classes=5)

的安装指南中找到了它
https://docs.shopware.com/de/shopware-6-de/erste-schritte/shopware-6-installieren