質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

1回答

2884閲覧

特定のIDだけBASIC認証させる

amaryllis

総合スコア179

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2018/07/16 02:31

編集2018/07/16 05:38

特定のIDだけBASIC認証させる方法を.htaccessで書きましたが、特定のIDだけBASIC認証できず、困っています。

参考したページでやってみました。
ベーシック認証とIP制限を併用する
「BASIC認証とIP制限の組み合わせに何思う」あかつきのお宿

因みに自分のPCからアクセスしているIPアドレスを下記のサイトを見てIPアドレスを.htaccessに書き、BASIC認証してみようとしました。
IPアドレス確認

しかし、思うようにいきませんでした。

もちろん、フルパスは、

php

1<?php 2echo __FILE__; 3?>

それをサーパーにアップし、フルパスを調べて、
AuthUserFileに入れましたので、合ってますし、.htpasswdまで用意済みです。

どうしたらいいでしょうか?

<回答に対しての質問です>
・CHERRYさん、回答をありがとうございます。
.htaccessは、下記のように書いてみたり、しました。

<Directory /home/mibapre/mibapre.php.xdomain.jp/public_html/> Satisfy Any Order Allow,Deny Allow from All Deny from xxx.xx.xxx.xxx AuthType Basic AuthName "Input ID and Password." AuthUserFile /home/mibapre/mibapre.php.xdomain.jp/public_html/.htpasswd Require valid-user </Directory>

上記の内容だと、500エラーが出たので、内容を変えて下記の内容にしてみました。
しかし、Directoryはどのように入れたらいいのかが分からない。

<IfModule mod_rewrite.c> AuthUserFile /home/mibapre/mibapre.php.xdomain.jp/public_html/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user Satisfy Any Order Allow,Deny allow from xxx.xx.xxx.xxx </IfModule>

上記にしてみるとIPアドレスが全く効かず、BASIC認証のダイアログが出てしまう。
※ 自分のIPアドレスでBASIC認証表示、別のIPアドレスでもBASIC認証表示されてしまう。

・otnさん、回答をありがとうございます。
あるユーザーがサイトを見たとき、.htaccessに入れたそのIPアドレスであれば、BASIC認証をかけるということです。
つまり、.htaccessに入れたそのIPアドレス以外からのアクセスでしたら、BASIC認証せず、サイト表示するという方法がしたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/07/16 04:09

うまくいかないというのは、どのような状況ですか? エラーが出る? それ以外? 具体的に記述してください。また、 .htaccess は、どのような内容なのでしょうか?
otn

2018/07/16 04:27

「何がしたくて、何をやって、どうなったか」の全部が不明です。これでは「がんばってください」としか言い様がない。
amaryllis

2018/07/16 05:39

CHERRYさん、otnさん、上記に質問を追加しましたので、お願いしましす。
otn

2018/07/16 05:54

「特定のIPアドレスだけBASIC認証を掛けたい」の間違いのようなので、質問を書き直してください。
amaryllis

2018/07/16 06:01

本当に「特定のIPアドレスだけBASIC認証を掛けたい」です。特定のIPアドレス以外はBASIC認証を掛けるのではないです。
otn

2018/07/16 10:21

繰り返しますが、質問を書き直しましょう。
guest

回答1

0

ベストアンサー

特定のIDだけBASIC認証させる

「特定のIPだけBASIC認証させる」の間違いのようなので、それへの回答です。

まず、.htaccessには、<Directory ・・・>は書けません。エラーの原因はそれです。
.htaccessに、<Directory ・・・>を書くような説明があったサイトは信用しないでください。

.htaccessは対象とするディレクトリ、この場合は、/home/mibapre/mibapre.php.xdomain.jp/public_html/に置きます。

Apache

1 Satisfy Any 2 3 Order Allow,Deny 4 Allow from All 5 Deny from xxx.xx.xxx.xxx 6 7 AuthType Basic 8 AuthName "Input ID and Password." 9 AuthUserFile /home/mibapre/mibapre.php.xdomain.jp/public_html/.htpasswd 10 Require valid-user

という記述自体に誤りはありません。

内容を変えて下記の内容にしてみました。

という2つめの記述は、「何を考えたら、こんな記述になるの??」というレベルの物です。
設定ファイルは、ちゃんと意味を考えて書きましょう。

投稿2018/07/16 10:42

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amaryllis

2018/07/16 11:55

otnさん、回答をありがとうございます。 自分のIPアドレスで入れて、ブラウザをリロードしてみるとBASIC認証が出ました。 別のIPアドレス(自分以外)で、入れて、ブラウザをリロードしてみるとBASIC認証なしで行けました。 しかし、自分のIPアドレスで、ブラウザのアドレスバーにURLを入れてみるとBASIC認証なしで行けてしまいます。 そこは、どうしたら良いですか?
otn

2018/07/16 12:25

そもそも、テストごとにブラウザを終了&再起動していますか?
amaryllis

2018/07/16 14:45

あっ! ブラウザを終了&再起動したらBASIC認証しました。 Google Chrom(Win/Mac)とSafari(Mac)とIE(Win)とMicro Edgeは効きますが、Firefox(Mac/Winは未確認)はBASIC認証しませんでした。
otn

2018/07/16 16:36

BASIC認証は一度認証されるとブラウザを落とすまで有効です。
amaryllis

2018/07/17 04:27

その事は存じています。 私は、BASIC認証が表示されるか?を見て認証せず、閉じるようにテストしてました。 なのにFirefoxは、認証してない状態で起動したのですが、アドレスバーに入れてみてもBASIC認証せずにサイト表示されてしまったのです。 もしかして <IfModule mod_rewrite.c>と</IfModule>が必要だったかな?
otn

2018/07/17 04:30

あとは、ブラウザキャッシュですね。 > <IfModule mod_rewrite.c>と</IfModule>が必要だったかな? 何故そんな全く関係無いことを思いつくのでしょうか?
amaryllis

2018/07/17 13:45

今日(今夜)になって、再度テストしたら、認証しました。 これで、Firefox(WinとMacはOKでした)もできたので、ベストアンサーさせていただきます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問