Apache Limit指令被忽略,内容总是被执行

我希望用户在调用特定的HTTP方法时进行身份validation,而在调用其他HTTP方法时不需要进行身份validation。 我使用Limit指令,因为这应该做我想要的,但是我不能得到它的工作。

 SSLVerifyClient none <Location /foo> SSLVerifyClient none <Limit PUT> SSLVerifyClient require </Limit> </Location> 

似乎最后的SSLVerifyClient语句总是被执行,无论我做了哪个调用(PUT,DELETE)

我也尝试使用LimitExcept但它有相同的错误行为。

由于我无法在网上find答案,我认为这是一个不容易的,但我上周开始工作,以填补假期的同事。 有人能帮我吗?

看来, Limit指令只适用于限制访问。 里面的其他指令可能根本不起作用,或者没有按预期工作。 在你的情况下,它可能无法触发SSLVerifyClient不同值,具体取决于请求的types。

解决方法可能是创build不同的目录或别名,configuration不同的SSLVerifyClient指令值,并可能处理不同的HTTP方法集。

http://httpd.apache.org/docs/current/mod/core.html#limit

<Limit>指令

说明:仅将特定的访问控制限制为某些HTTP方法。

该指令的目的是将访问控制的效果限制在指定的HTTP方法中。 对于所有其他方法,括号中的访问限制将不起作用。