Apache 位置匹配通配符 URL

Posted

技术标签:

【中文标题】Apache 位置匹配通配符 URL【英文标题】:Apache location match wildcard URL 【发布时间】:2012-04-28 13:55:06 【问题描述】:

我的 VHOST 目前看起来像:

<VirtualHost *:80>
     DocumentRoot /data/sites/example_deploy
     ServerName deploy.example.co.uk
     <Directory "/data/sites/example_deploy">
        Options +SymLinksIfOwnerMatch
        AllowOverride All
        Order allow,deny
        Allow from all

        AuthUserFile /data/confs/svn/htpasswd
        AuthName "Example deployment example testing"
        AuthType Basic
        Require valid-user
    </Directory>
</VirtualHost>

我们有一个采用不同参数的 URL /api。例如:

/api/testing-bot-response/1234842823 /api/sql-deploy-response/stage/172bUd7s

我们试图实现的是 /api/* 不需要有效用户,并且在发出请求之前满足 HTaccess。 URL 可能由 2 个以上的参数组成。

我研究了这个主题,发现我需要使用 LocationMatch 并传递 Satisfy 参数,但是我不确定应该如何形成正则表达式。

【问题讨论】:

我已经解决了这个问题。诀窍是使用 LocationMatch 没有位置。 $ order allow,deny allow from all 满足任何 那么您应该将上述评论作为答案发布并接受它...否则人们(如我)会尝试回答您的问题 【参考方案1】:

我已经解决了这个问题。诀窍是使用LocationMatch。看下面的代码:

$<LocationMatch "/api/*"> 
    order allow,deny 
    allow from all 
    Satisfy any 
</LocationMatch>

【讨论】:

以上是关于Apache 位置匹配通配符 URL的主要内容,如果未能解决你的问题,请参考以下文章

借助Spring工具类动态匹配url

Apache - 允许一个通配符 URL,拒绝所有其他请求

具有动态 apache 虚拟主机的非通配符证书

Apache Rewrite - 重定向通配符子域和处理内部 URL 缩短器

每日leetcode 一题 (44)通配符匹配

在 apache 2.2.3 上设置通配符子域(带有反向代理)