【问题标题】:.htaccess: allow access to directories that begin with the letter "r" using regex.htaccess:允许使用正则表达式访问以字母“r”开头的目录
【发布时间】:2021-08-20 02:23:26
【问题描述】:

我有一个 .htaccess 文件,我想拒绝来自所有 DIR 的访问,除了 /docs/ 中称为 r20r21 的文件夹,我希望在将来添加更多 DIR从 r 开始。我可以使用什么正则表达式?谢谢。

RewriteEngine On

<DirectoryMatch "^/docs/r">
   Order deny,allow
   Deny from all
</DirectoryMatch>

【问题讨论】:

  • 你不能在.htaccess中使用DirectoryMatch,该指令的上下文是server config, virtual host
  • 好吧,不知道,从这篇文章中得到它:stackoverflow.com/questions/1057744/… 我查看的另一个选项是Order Allow,Deny &lt;FilesMatch "^/docs/r"&gt; Allow from all &lt;/FilesMatch&gt; 但我不确定这是否更好。跨度>
  • 我不确定您是否可以将 pathsFilesMatch 一起使用,文档明确使用了术语“文件名”。您可能还可以使用 RewriteCond 和 RewriteRule 的组合来执行此操作,条件将检查请求 URI 是否 not/docs/r 开头,并且规则将匹配以 @987654331 开头的所有路径@,然后简单地为 Forbidden 应用 F 标志。

标签: regex .htaccess http


【解决方案1】:

感谢@CBroe 的建议,这对我有用。

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/docs/r
RewriteRule !^/docs - [F]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-10
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    相关资源
    最近更新 更多