ホスティングサービスの管理画面で自動生成されたパスワード認証によるアクセス制限に、特定ホスト or ドメインからのアクセスのみを許可する設定を組み込みたいのですが、どなたかご教授お願いします。(いろいろとサイトを調べましたがうまくいきませんでした)※同様の結果を得られる手段が他にもありましたら、併せてご回答頂けると助かります。
下記が自動生成されたファイルの内容です。
--
<Directory /XXXXX/XXXXX/XXXXX/XXXXX/XXXXX/XXXXX/XXXXX>
AuthName UserAuth
AuthType Basic
AuthUserFile /XXXXX/XXXXX/XXXXX/XXXXX/XXXXX/XXXXX/XXXXX/.htpasswd
Require valid-user
</Directory>
利用しているレンタルサーバのWebファイルマネージャーで設定すると、こんなのになりました。
DirectoryIndex index.html index.htm index.cgi index.php
AuthUserFile /*****/.htpasswd
AuthType Basic
AuthName "Web access"
Require valid-user
Order allow,deny←追加
Allow from 200.200.200.200←IPアドレス「200.200.200.200」を許可
Allow from yahoo.co.jp←ホスト「yahoo.co.jp」を許可
おぉ!すげー。ありがとございます。
後で試してみます。
-> 非常に便利でしたがうまくいきませんでした。設定が間違ってるのか、仕様なのか。
.htaccess以外の方法でも何かありましたらお願いします。
特定のIPホストだけアクセスを許可する設定は
order deny,allow
deny from all
allow from (許可するホスト)
となります。
つまり、
<Directory /XXXXX/XXXXX>
AuthName UserAuth
AuthType Basic
AuthUserFile /XXXXX/XXXXX/.htpasswd
Require valid-user
order deny,allow
deny from all
allow from .hatena.ne.jp
</Directory>
とすればhatena.ne.jpからしかアクセスできなくなります。
これで上手くいかなければ
・サーバー側で何か制限がかかっている(そんな制限聞いたこと無いけど)
・IPアドレス/ホストを間違っている
のどちらかでしょう。
「アクセスできない状態」というのはどういう状態でしょうか。
IP制限に引っかかったエラーならエラーコード403ですし、htaccessの記述ミスなら500です。
ありがとうございます。
月曜日から早速試してみます。
エラーコード403です。
IPアドレスだとOKでしたがなんでだろ…。
念のため診断くんでIPアドレスをチェック後、思い付く複数パターン全て試しても403エラーになります。
ホスティングサービスも提供しているサービス以外の事は答えられないとの事でしたので諦めかな。。
ありがとうございました。
IPアドレスを指定すればOKだけどホスト名だとダメということですか?
とすると、ひょっとしてホスティングサービスがIP→ホスト名の逆引きに対して制限をかけているのではないでしょうか。
XREAなどはダメらしいですね。
もしCGIが設置可能なサーバーでしたらこちらで配布しているような環境変数チェッカーを実際に使っているサーバー上に置いてみて、REMOTE_HOSTが表示されるか確認してみるといいかもしれません。
その場合、htaccessのみでのホスト名でのアクセス制限は無理なので、ページ自身をCGI化してCGI上で制限するしか手は無さそうです。
kent-webさんのアクセス制限CGIなどがお役に立つかも知れません。
大変親切にありがとうございます。
かたじけないです。
ありがとうございます。後で試してみます。
-> うまくいきませんでした。アクセスできない状態になってしまいます。