允许查询字符串通过.htaccess密码保护

时间:2012-02-09 14:10:47

标签: .htaccess mod-rewrite paypal-ipn .htpasswd

我有一个临时站点,我使用.htaccess密码保护它。

但是,由于这是一个电子商务网站,我需要paypal的IPN才能与我的网站进行通信。

我正在使用以下.htaccess但它无效。密码保护仍然有效。

Deny from all
Order deny,allow
AuthType Basic
AuthName "Restricted Area"
AuthUserFile "/path/to/htpasswd"
require valid-user

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{QUERY_STRING} ^paypalListener=paypal_standard_IPN$
  RewriteRule .* - [E=test_uri]
</IfModule>

#Allow valid-user
Allow from env=test_uri
Satisfy any

有人可以指导我这里有什么问题吗?

1 个答案:

答案 0 :(得分:0)

好的,从我所看到的,[E=test_uri]只是将“test_uri”设置为空字符串,因此不做任何事情。此外,Allow from需要IP或域(例如,PayPal的服务器向您的网站发出请求)。

因此,如果您正确地将环境变量设置为发出请求的远程地址,它可能会起作用,如下所示:

RewriteRule .* - [E=test_uri:%{REMOTE_ADDR}]

我现在无法测试。

还要确保服务器的.conf文件中没有其他身份验证规则,并且解析.htaccess文件中的身份验证指令(Options AuthConfig)。