• 締切済み

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ではできていないように思います。 こちらの改善策もできればお願いします。

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

そもそも 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/ )

iroro16
質問者

お礼

丁寧な解答ありがとうございます。 解説していただいたことをよく読んでもう一度勉強しなおし、自分にできる範囲のことから始めようと思います。 CGIでのパスワードはまだ試したことが無いので一度挑戦してみます。 何度も本当にありがとうございました!

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

一階層下げればよいだけです。 パスワード制限をかけるフォルダーに.htaccessで制限してください。 パスワードファイルは、直接おかずに.anywx/ とか分かりにくい名前にして・・

iroro16
質問者

補足

解答ありがとうございます。 説明が下手ですみません、その通りにしているのですが上手くいかないのです。 一つ下の階層のファイルに.htaccess、.htpasswdを置き、 AuthUserFile /home/アカウント名/www/(INDEXフォルダ)/(HOMEフォルダ)/.htpasswd と書いているのですが、表示させたいINDEXのページに飛んだ瞬間ベーシック認証の入力画面が出るんです。キャンセルを押すとINDEXページが表示されます。INDEXページにパスワードのヒントなどを書いてあるので、先に表示させたいのです。 ユーザー名やパスワードは設定した通りにできておりHOMEページにも飛べます。 ただ、この最初に入力画面が出てくる一手間を解消したいのですが、可能でしょうか…。

関連するQ&A

  • Basic認証がindex.htmlにもかかる

    サイトを作成してアップしました。index.htmlより下層のファイルにはBasic認証をかけたくて、.htaccessを下層のフォルダにいれました。 しかし、なぜか、index.htmlにもBasic認証がかかってしまいます。 しかも、そこでキャンセルすれば、エラーページに飛ばされることなく、indexが表示されます。ただ、画像は表示されません。 下層のファイルに飛ぼうとすると、きちんとしたBasic認証がちゃんとかかります。 いろんな方法を試してみましたが、この現象が解消されません。 ちなみに、現在の.htaccessは以下の通りです。 <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> AuthUserFile /home/○○○/○○○/○○○/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user order deny,allow 本にもどこにも載っていないし、ネットで探しても答えがありません。 困っています。 原因はなんでしょうか。また、この現象を回避する方法はないでしょうか。 どうかよろしくお願いします。

  • Basic認証がindex.htmlにもかかる

    サイトを作成してアップしました。index.htmlより下層のファイルにはBasic認証をかけたくて、.htaccessを下層のフォルダにいれました。 しかし、なぜか、index.htmlにもBasic認証がかかってしまいます。 しかも、そこでキャンセルすれば、エラーページに飛ばされることなく、indexが表示されます。ただ、画像は表示されません。 下層のファイルに飛ぼうとすると、きちんとしたBasic認証がちゃんとかかります。 いろんな方法を試してみましたが、この現象が解消されません。 ちなみに、現在の.htaccessは以下の通りです。 <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> AuthUserFile /home/○○○/○○○/○○○/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user order deny,allow 本にもどこにも載っていないし、ネットで探しても答えがありません。 困っています。 原因はなんでしょうか。また、この現象を回避する方法はないでしょうか。 どうかよろしくお願いします。

  • BASIC認証を毎回起動させる方法(最初の1回しか機能しない)

    はじめまして。 とあるホームページのとある階層に.htaccessによるBASIC認証をかけているのですが初めてアクセスするPCだと問題なく、認証ウインドウが表示されるのですが、2度目からはブラウザを変えてもパスワードやIDの要求がされません。 これの解決方法を教えていただけないでしょうか? ***.htaccess*** order allow,deny allow from all Authname "For Members" Authtype Basic AuthUserFile /home/hoge/​www/hogehoge/hogehogehoge/.htpasswd​ require valid-user ***.htpasswd*** hoge:J1.XAqZ0sDeeI

  • webサイトの「index」を非表示にしたい

    質問です。 WEbサイトで「http://○○/index.html」の 「index」を非表示にしたいのですがうまくいきません。 「.htaccess」で <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> Options -Indexes order deny,allow と入力しサーバにアップはしているのですが、 他のページからINDEXページに戻ってきた際に indexが表示されています。 最初にWEBページにやってきた時は消えている時もあります。 ブックマークからサイトにくると表示されています。 どこか間違っている箇所があるか 教えて頂けると幸いです。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • htaccessの認証が出来ません…

    htaccessによるBasic認証を試みてるのですが、何度IDとPASSを打っても同じ認証画面が出てきてしまいます…。 .htaccessには以下のように記述してあります。 AuthUserFile "フルパス.htpasswd" AuthGroupFile "/dev/null" AuthName "Input ID and Password." AuthType Basic <Limit GET POST PUT> require valid-user </Limit> <Files ~ "^.(htpasswd|htaccess)$"> Order deny,allow deny from all </Files> .htpasswdには ID:暗号化したパスワード と記述してあります。 フルパスの指定に間違いがないとしたら、何か他に認証に 失敗する原因として挙げられるものがありますでしょうか? 『0ad』というところでレンタルサーバーしてまして、htaccess可能となってはいるのですが…。

  • basic認証がきかない

    自宅PCのapache2でbasic認証をつかおうと思っています。 そこでつまずいてます… htdocs配下のfileフォルダに設定しようと思い、fileフォルダに.htaccessと.htpasswdファイルを入れて設定してみましたが全然効いてくれません… ためしにhtdocs内にこの2つをいれるとhtdocsフォルダにあるindex.htmlを開こうとするとちゃんと効いてくれます。 htdocs配下のフォルダのファイルへの認証する場合なにか他の設定が必要なんでしょうか? アドバイスお願いします。 ######とりあえず、現在の状態####### [.htaccess] AuthUserFile C:/Program Files/Apache Group/Apache2/htdocs/file/.htpasswd AuthGroupFile /dev/null AuthName "password!" AuthType Basic require valid-user [httpd.conf] # Options FileInfo AuthConfig Limit # AllowOverride All     : # AccessFileName .htaccess     : # <FilesMatch "^\.ht"> Order allow,deny Deny from all </FilesMatch>

  • Wordpressで、403 Forbidden

    さくらインターネットにてWordPressをインストールして、ログインできたのですがページを表示しようとしたら「Forbidden You don't have permission to access / on this server.」というエラーが出てきてしまいます。 過去のWordpressのフォーラム含め、色々とググって試してみたのですが状況が変わりません。。だいぶ時間を使ったのですが解決せずとても困っています。。どなたか教えていただけませんでしょうか? ■やったこと ・アクセス設定からindexファイルの設定で「index.php」を追加し、ファイルが存在しない場合の挙動を「アクセスを拒否する」に設定 ・Webアプリケーションファイヤーウォールを「利用しない」に設定 ■.htaccessファイルの中身 # BEGIN WordPress # END WordPress DirectoryIndex index.html index.htm index.php .ht AuthUserFile /home/サイト名/www/.htpasswd AuthType Basic AuthName "Web access" Satisfy all Order deny,allow Deny from all

  • ステップサーバーでの.htaccess設定

    ステップサーバーで.htaccessを使ったBASIC認証をしたいのですが、うまくいきません。 現在、public_htmlの直下に作ったsecretというフォルダに.htaccessを置いています。.htpasswdはpublic_htmlがあるのと同じ階層に置いています。 .htpasswd ▽<public_html>  ・index.html  ▽<secret>   ・.htaccess   ・index.html 【.htaccessの内容】 <Files ~ "^.(htaccess|htpasswd)$"> deny from all </Files> Options -Indexes AuthUserFile /export/usr/home/ex00000000/.htpasswd AuthGroupFile /dev/null AuthName "Please enter your ID and password" AuthType Basic require valid-user order deny,allow 【.htpasswdの内容】 test:xxxxxxxxx (パスワードは暗号化しています) ステップサーバーのアカウントページでは、ホームディレクトリのパスとして「/export/usr/home/ex00000000/」が指定されています。 FFFTPで接続すると、トップディレクトリに「xxxxx.web5.jp」というディレクトリがあり、その中に「public_html」があります。 .htaccessのパスが違うのかと思い、 /export/usr/home/ex00000000/.htpasswd /export/usr/home/ex00000000/xxxxx.web5.jp/.htpasswd などと書き換えて試してみましたが、前者の場合は認証ウィンドウが出るもののIDとパスを入力しても通らず、後者の場合はsecretフォルダへ普通にアクセスできてしまいました。(認証画面出ず) どこか他に確認すべき点はありますでしょうか?

  • Basic 認証ができない

    Basic認証を行いたいのですが、「ユーザー」と「パスワード」を入れても認証を通過できません。 [.htaccess]ファイルには下記のように記述しました。 AuthUserFile /home/test/.htpasswd AuthGroupFile /dev/null AuthName "Secret Area" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> [.htpasswd]ファイルには下記のように記述しました。 test:KNBKgzgRhzAOk パスワードは下記URLで作成しました。 http://www.futomi.com/lecture/htaccess/htpasswd.html なにが問題なのでしょうか?

  • DocumentRootより上に設置した.htpasswdには防御不要?

    DocumentRootより上に設置した.htpasswdには、その.htpasswdを置いたディレクトリに以下のような記述をした.htaccessなどを配置して、.htpasswdファイルを他の人から見えないようにする配慮は必要ないのでしょうか? <Files ~ "^\.ht"> order allow,deny deny from all satisfy all </Files> よろしくお願いします。 追記: http://oshiete1.goo.ne.jp/qa4194107.html にも.htaccess関連の質問をしていますが、なかなかコメント集まりません。よろしければ、こちらの方もよろしくお願いします。

専門家に質問してみよう