質問: .htaccessと.htpasswdの質問です。 現在、Aサイトで.htpasswd(ベーシック認証)を掛けています。特に条件は掛けておらず全てのアクセスに対してパスを求めています。 で、BサイトのURL()からAサイトにアクセスした場合のみパスワードフリーにすることはベーシック認証を掛けながらでも可能なのでしょうか? つまり、「Bサイト経由」の場合にのみパスワードは求められずそのまんまAサイトに入場できるようにしたいのです。 かれこれ1時間ほど調べたのですが、 「特定IPアドレスからのアクセス」に対しての対処法や、 SetEnvIf REMOTE_ADDR 192.192.192.999 valid-ip Require env valid-ip 「サイト内の特定フォルダ」に対しての対処法なら見つかったのですが、 SetEnvIf Request_URI "^/hoge/*" valid-url Require env valid-url 「特定URLからのアクセス」に対しての対処法が見つかりません。 仮に、ベーシック認証でなければ以下の様に簡単で良いのですが・・・。 SetEnvIf Referer "^https://192\.com(.*)" ref_ok order deny,allow deny from all allow from env=ref_ok どなたか方法をご存じないでしょうか?
回答: >仮に、ベーシック認証でなければ以下の様に簡単で良いのですが・・・。 Satisfy Any を指定していれば、Allow と Require の「どちらか」がOKならアクセス可にできます。つまり、Allow(SetEnvIf で設定した環境変数によるアクセス許可)でないときだけRequire(Basic認証)が行われるようになります。 ただし「Refererがどれだけアテになるか」は考慮しておく必要があります。ブラウザの機能に頼ることになりますし、以前セキュリティソフトが(勝手に)Refererをカットするということもありました(以来、個人的には「アテにできないもの」のひとつになっています)。