- 締切済み
INDEXは表示、リンク先以降にパスワード
CGI、SSI、.htaccess利用可能なさくらインターネットというサーバをレンタルし、主にサーバのファイルマネージャーを使ってサイトを作っています。 HTMLもサイト作成も初心者です。宜しくお願いします。 INDEX (.htaccessでロボットをブロック ここにパスワードのヒントを書く) ↓この間にパスワード画面が出てほしい HOME(サイト内容のトップ) と、こうしたいです。 INDEXページ以外のファイルは全てフォルダに入れており、そこに.htaccessでパスワードを設置しました。 /home/アカウント名/www (元のアカウントは表示できないよう.htaccessで制限) サイト全体のフォルダ (ここにINDEXとロボット制限) HOME以下のフォルダ (ここに全ファイルと.htaccessと.htpasswd) ですが アクセスするとまずユーザー名、パスワードの入力画面が出て、表示させたいINDEXページの内容が出ません。 入力画面でキャンセルをすればページが見れるようになり、ユーザー名、パスワードを入れると正常にHOMEに入れます。 なにか良い解決策はないでしょうか。 あちこちのHTML解説サイトの見よう見まねで作成しているので、どのアクセス制限が問題なのかもわかりません…。 元のアカウントの制限には DirectoryIndex .ht AuthUserFile /home/アカウント名/www/.htpasswd AuthType Basic AuthName "Web access" Satisfy all Order deny,allow Allow from all INDEXにおいた.htaccessの最後に DirectoryIndex (INDEX名).html .ht AuthType Basic AuthName "Web access" Satisfy all Order deny,allow Allow from all HOMEの.htaccessの最後には ErrorDocument 403 /403.html ErrorDocument 404 /404.html ErrorDocument 500 /500.html AuthUserFile /home/アカウント名/www/(サイト全体フォルダ)/(HOMEフォルダ)/.htpasswd AuthType Basic AuthName "Web access" Require valid-user Satisfy all Order allow,deny Allow from all と記述しています。問題のあるところをご指摘していただきたいです。 自分なりに問題解決のため検索をかけ、さくらインターネットのルーティングは一癖あるという解説も読んだのですが、許容オーバーでわたしには難しく理解できませんでした…。 あと、エラーログでときどき INDEXページの背景画像や外部CSSが「user not found」でヒットしています。自分で確認したところ、ほとんどのブラウザは表示できているのですが、firefoxではできていないように思います。 こちらの改善策もできればお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ORUKA1951
- ベストアンサー率45% (5062/11036)
そもそも DirectoryIndex .ht はおかしい、DirectoryIndexは、HTTPサーバーがそのディレクトリ(及び以下の階層のディレクトリ)名だけで要求があったとき、どのファイルを表示するか、あるいはしないのかを指定するところです。すなわち DirectroyIndex index.html index.htm index.php index.cgi index.sh とかに指定します。 ※基本、HTTPサーバーは、 1) /abc/efg/hij の要求があると、それが存在しファイルだとそのまま提供します。 それが実行ファイルでしたら、処理プログラムに渡します。 それがディレクトリでしたら、ディレクトリを開いて ・ファイルの一覧を表示する。(Indexes FollowSymLinks) ・DirectroyIndexに指定してあるファイルがあればそれを表示する。 いずれでない場合は、/hijを環境変数PATH_INFOに格納して 2) /abc/efg,/abc に対して同様な処理を行います。 3) ルートまでたどってなければ404 ROBOT.TXTはサーバーのルートで無いと利用されません。 /user |-- yourName |-- bin/ | |-- .htgroup パスワードとユーザー名 |-- home/ |-- index.html |-- ROBOT.TXT |-- favicon.ico |-- private/ | |-- .htaccess 内容は下記 AuthUserFile /bin/.private AuthGroupFile /dev/null AuthName "Web access"AuthType Basic <Limit POST GET PUT> require valid-user </Limit> <Files .ht*> order deny,allow deny from all </Files> ・・・1度apacheのマニュアルをご覧になって確認されたほうが良いです。 ⇒Amazon.co.jp: apache( http://www.amazon.co.jp/s/ref=sr_pg_1?rh=i%3Aaps%2Ck%3Aapache&keywords=apache&ie=UTF8&qid=1356336740 ) ・・・CGIを利用してこれらをGUIで行うスクリプトもあります。 ⇒CGI RESCUE チャレンジCGI - パスワードアクセス制限管理システム( http://www.rescue.ne.jp/cgi/htpwd/ )
- ORUKA1951
- ベストアンサー率45% (5062/11036)
一階層下げればよいだけです。 パスワード制限をかけるフォルダーに.htaccessで制限してください。 パスワードファイルは、直接おかずに.anywx/ とか分かりにくい名前にして・・
補足
解答ありがとうございます。 説明が下手ですみません、その通りにしているのですが上手くいかないのです。 一つ下の階層のファイルに.htaccess、.htpasswdを置き、 AuthUserFile /home/アカウント名/www/(INDEXフォルダ)/(HOMEフォルダ)/.htpasswd と書いているのですが、表示させたいINDEXのページに飛んだ瞬間ベーシック認証の入力画面が出るんです。キャンセルを押すとINDEXページが表示されます。INDEXページにパスワードのヒントなどを書いてあるので、先に表示させたいのです。 ユーザー名やパスワードは設定した通りにできておりHOMEページにも飛べます。 ただ、この最初に入力画面が出てくる一手間を解消したいのですが、可能でしょうか…。
お礼
丁寧な解答ありがとうございます。 解説していただいたことをよく読んでもう一度勉強しなおし、自分にできる範囲のことから始めようと思います。 CGIでのパスワードはまだ試したことが無いので一度挑戦してみます。 何度も本当にありがとうございました!