2012-02-09 15 views
1

.htaccessパスワードを使用してセキュリティを確保したステージングサイトがあります。.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 

ここで何が間違っているのか教えてもらえますか?

+0

実際にはどうなりますか?あなたは500サーバエラーを取得するか、それは単にpaypalのURLのためにパスワードを尋ねますか? – talereader

+0

パスワード保護はまだ有効なので、私のルールが間違って書かれているのでしょうか? – witherspoon

答えて

0

私が見る通り、[E=test_uri]は "test_uri"を空の文字列に設定するだけなので、何もしません。また、Allow fromは、IPまたはドメイン(たとえば、PayPalのサーバーがサイトにリクエストを送信していること)を想定しています。

あなたが適切に要求を行うリモートアドレスへの環境変数を設定するのであれば、それはうまくいくかもしれない、このように:

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

でも、私は今、この権利をテストすることはできません。

また、サーバーの.confファイルに他の認証ルールがなく、.htaccessファイルの認証ディレクティブが(Options AuthConfig)解析されていることを確認してください。

+0

おかげさまで、同じ問題が依然として続きます。私の方法は実際にここhttp://css-tricks.com/snippets/htaccess/allow-single-url/から来ますが、私はクエリ文字列を許可したいので、私はmodリライトを使用して終了しました – witherspoon

+0

私はこれをローカルホスト上でテストしました。 'test_uri'は127.0.0.1に設定されます。 'Allow from 127.0.0.1'を使うと、パスワード保護がオフになります。しかし、これをすべて組み合わせて、 'allow from env = test_uri'を使うと、有効な文afterallは動作せず、' test_uri'は設定されません。有効なユーザー/パスワードでログインしても、 'test_uri'は設定されません。私は困惑している。 – talereader

+0

これで本当に不安な気がする。私はuriとipも試してみましたが、うまくいっています。 – witherspoon

関連する問題