Apache2混合了两种位置限制:基本authentication和基于IP的

我想用基本的身份validation来限制登台服务器,除了一个特殊的位置,它不应该有基本的身份validation,但只限于一个客户端IP块。

我的虚拟主机部分如下所示:

DocumentRoot /var/www/vhosts/example/public ServerName beta.example.com <Directory /var/www/vhosts/example/public> Options FollowSymLinks -MultiViews AllowOverride all Order allow,deny Allow from all </Directory> <Location /> AuthUserFile /var/www/.htpasswd AuthType Basic AuthName "Secret" Require valid-user </Location> <Location /payment/ipn> # How can I disable basic auth here? Order deny,allow Deny from all Allow from 216.113.191 </Location> 

所以,除非他们知道密码,否则任何人都不能访问该网站。 但是,PayPal Sandbox(216.113.191.xxx)应该可以访问http://beta.example.com/payment/ipn发送即时付款通知。

我在Apache2上通过Passenger托pipeRails 3。

听起来像你想要Satisfy

 Satisfy Any 

默认情况下设置为满意,那么所有的validation方法应该是true。 请记住,子目录或sublocation从主人inheritancepropertis,并在您的需求应该是任何。 如果有一个要求完成,其他的不被检查。

如果你想要更复杂的行为,你应该使用指令和。 您可以嵌套这个指令来创build复杂的案例。 这一切都是官方apache文档里面描述,例如: http : //httpd.apache.org/docs/current/mod/mod_authz_core.html