• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Apacheでアクセスを一つのファイルに集める方法)

Apacheでアクセスを一つのファイルに集める方法

このQ&Aのポイント
  • Apacheでディレクトリの場合、必ずindex.cgiを見るように設定しようとしているがうまくいかない。実際にそのディレクトリにファイルがないとファイルが見つからないエラーになってしまう。解除する方法がわからず困っている。
  • Apacheでディレクトリのアクセスを一つのファイルに集める方法がわからない。設定を行ってもファイルが見つからないエラーになる。解除する方法を教えてほしい。
  • Apacheでディレクトリのアクセスを一箇所に集める方法を実施しようとしているが、ファイルが見つからないというエラーになってしまう。解除する方法を教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4851/10265)
回答No.1

ファイルがないと、AddHandlerの処理に行く前に404エラーになるのは仕様だと思います。 http://example.com/foo/ここに何を書いても をすべてとあるcgiプログラムで処理したければ、foo をディレクトリじゃなくて、cgiファイル名を foo にして、 <Files "foo"> SetHander cgi-script </Files> で、どうでしょうか。

keeeeeeeen
質問者

お礼

回答ありがとうございます。 こちら間違いがありまして、ディレクトリではなく、ファイルでした。 hoge.htmlにアクセスがあった場合index.cgiを見る仕様に変えたいということです。

keeeeeeeen
質問者

補足

すいません、追記漏れです。hoge.htmlにアクセスした場合参照されるディレクトリの有無に関わらずindex.cgiに飛ばして別のところにあるhogehoge.html何かを呼び出すような仕組みにしたいと思っています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ApacheでCGI以外のデータも全部表示可能にしたい

    ローカルサーバーとしてApacheを使っています。 CGIの動作ディレクトリをルートディレクトリ以下(localhost以下)に設定していて、それでCGIは動くのですが他のファイルにアクセスできません。AddHandlerの行にファイルタイプを追加することで対処可能だと聞きましたが、1つずつ設定するのではなく一括で全部のファイルにアクセスできるようにはできませんでしょうか?WWWサーバーとして使うわけではないのでセキュリティの問題は無視してくださって結構です。 あともうひとつ質問です。通常のウェブサイトではアドレスを「hoge/」のようにスラッシュ(/)で終えた場合、そのディレクトリにindex.htmlがあればそれを表示するようになっています。僕が使っているApacheもそうだったのですが、上で設定したディレクトリ(localhost)以下へアクセスする際、スラッシュで終えると403エラーが出てしまいます。アドレスをきちんと「/index.html」まで打てばアクセスできるようになりますが、ちょっと面倒です。せっかく今までは省略できたのに(ルートディレクトリに置いたcgi-binディレクトリ以下をCGI動作ディレクトリに設定していて、それを今回変えたのです)。今までどおりにアドレスを省略できるようにするにはどう設定すればよいのでしょうか? どうか宜しくお願いします。

    • 締切済み
    • CGI
  • CGIのアクセス制限について

    環境は windowsXPHome SP3 / Apache2.2 / ActivePerl5 / (MySQLを使う予定) です。 htdocs\index.html htdocs\ddd\aaa.cgi htdocs\ddd\bbb.cgi のようなディレクトリ構成で、httpd.confは、htdocs以下を公開する設定になっていて <Directory "D:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ddd"> AddHandler cgi-script .cgi Options +ExecCGI </Directory> を指定しました。 これを自宅サーバーとして公開する場合、外部からはindex.htmlにアクセスできるようにして、 aaa.cgiやbbb.cgiはindex.htmlからリンクやformのactionから呼び出されてからしか実行できない (直接cgiのurlを指定して開けない)ようにするにはどうすればいいでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • apacheのファイル保存先について

    apache(2.2.4)をインストールしたのですが index.htmlは見れるのに、index.htmlと同じ階層に置いてある ファイル、同じディレクトリに保存しているファイルに アクセスしようとするとエラーが出ます ファイル名がtest.htmlだとすると http://127.0.0.1/test.htmlです これは同じ階層にファイルを置いてはだめなんでしょか? それともどこかで設定して初めてアクセスできるように なるのでしょうか、それとapacheの操作のことが詳しく載ってある 書籍を教えてもらえればと思います。

  • apache2.2の設定について

    あるディレクトリでsite_available中のファイルの設定が <Directory /var/hogehoge> Options ExecCGI -FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> となっているのですが、現在このhogehoge中のディレクトリでimageというディレクトリに置かれたgifファイル(すなわちvar/hogehoge/image/○○○.gif)をcgiとして認識されています。 これを回避するためにimage以下の場合はcgiではなくgifで認識させるようにしたいのですが、どうすればよいのでしょうか? apacheはdebian系のapache2.2系です。 宜しくお願い致します。

  • Apache で特定の拡張子を持つファイルへのリクエストを cgi に

    Apache で特定の拡張子を持つファイルへのリクエストを cgi に 送るにはどうしたらいいでしょうか?つまり、 http://127.0.0.1/proxytest_xml/a.xml http://127.0.0.1/proxytest_xml/b.xml など拡張子 xml の任意のファイルを HTTP リクエストされたときに、 D:\www\proxytest_xml\cgi-bin\index.cgi が実行されるようにしたいのですが、どうしたらいいでしょうか? 環境は Windows XP + Apache HTTP Server 2.2 + ActivePerl です。 Apache の httpd.conf には <Directory "D:/www/proxytest_xml/"> AllowOverride None Order allow,deny Allow from all AddHandler text/xml .xml # これがなくても同じですが Action text/xml D:/www/proxytest_xml/cgi-bin/index.cgi </Directory> <Directory "D:/www/proxytest_xml/cgi-bin/"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> と書いてあります。 これで PATH_INFO に "a.xml" を含んだ URI が来ると思ったのですが、 ブラウザでは Not Found The requested URL /proxytest_xml/a.xml was not found on this server. となり、Apache の error.log には [Fri Apr 09 23:51:24 2010] [error] [client 127.0.0.1] File does not exist: D:/www/proxytest_xml/a.xml と出力され、Directory 内の Action が効いていない気がします。 よろしくお願いします。

  • apacheでCGIを動かす

    apacheでCGIを動かそうと思っていますが、どうしても出来ません。 環境は以下の通りです。 apache:1.3.35 OS:Windows2000 httpd.confの設定は 1.ScriptAlias /cgi-bin/ の行をコメントアウト 2.Alias /cgi-bin/ "E:/hoge/cgi-bin/"に変更してDirectoryタグを追加 3.AddHandler cgi-script .exeを追加 以上の3点をしましたが、新しく設定したディレクトリのcgiは動作しませんでした。 apacheのmodulesディレクトリの中にmod_alias.soというファイルが有りませんがそれは関係有るのでしょうか? また、apacheとtomcatの連携ということを以前行ったのですが、動かない事と関係あるのでしょうか? 文字数の関係で見づらい説明になっているかと思いますがよろしくお願い致します。

  • apache の設定

    ホームページを置いているディレクトリで、index.html がない場合に ディレクトリの中身が見えてしまうので、httpd.conf を修正しました。  <Directory /home/hogehoge> Options All </Directory> から  <Directory /home/hogehoge> Options Includes FollowSymLinks ExecCGI </Directory> で、Indexes をとったつもりで、apache をリスタート させたのですが、それでもディレクトリの中身が見えてしまいます。 何か、勘違いしているのでしょうか??? また他に行うことがあるのでしょうか。 教えて頂けますでしょうか。 よろしくお願い致します。

  • apacheのScriptAliasの記述について

    どなたか,ご教授いただければ幸いです。 WindowsXp Proでapacheを動かしています。次の設定で,cgiはうまく動作していました。 --- <IfModule alias_module> ScriptAlias /cgi-bin/ \"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/\" </IfModule> <Directory \"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin\"> AllowOverride None Options ExecCGI Order allow,deny Allow from all AddHandler image/gif .gif AddHandler image/jpeg .jpg </Directory> --- これに, http://www.miloweb.net/win/server/apache.html を参考にして,各ユーザーフォルダでcgiが実行できるようにしようと,次のようにしました。 --- <IfModule alias_module> ScriptAlias /cgi-bin/ \"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/\" ScriptAlias /cgi/ \"C:/www/users/*/cgi/\" </IfModule> <Directory \"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin\"> AllowOverride None Options ExecCGI Order allow,deny Allow from all AddHandler image/gif .gif AddHandler image/jpeg .jpg </Directory> <IfModule mod_userdir.c> UserDir \"C:/www/users/*/\" </IfModule> <Directory \"C:/www/users/*/cgi/\"> AllowOverride None Options ExecCGI Order allow,deny Allow from all AddHandler image/gif .gif AddHandler image/jpeg .jp </Directory> --- その結果, http://localhost/~user/ としてuserのホームページにアクセスできるようになったのですが, cgiについては, http://localhost/~user/cgi/・・・ としてもアクセスできません。どなたか原因をご教授いただけないでしょうか。 ScriptAlias /cgi-bin/ \"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/\" ScriptAlias /cgi/ \"C:/www/users/*/cgi/\" の行を入れ替えると,\"C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/\"においてあるcgiが実行できなくなります。ScriptAliasは1行目しか有効でないようにも見えるのですが,上に書いた参考URLではできているようなので,戸惑っています。

  • Apache2+perlのドキュメントルート設定

    既存のデータを動かすために、ubuntuに (1)apache2インストール (2)perlインストール しました。 既存のcgiファイル等を apache2のインストールで作成された  /var/www/html に入れても動かなかったため、設定ファイルである  apache2.conf の中を、 (1)+ExecCGIを追記(下記) <Directory /var/www/html> Options +ExecCGI </Directory> +ExecCGI (2)末尾に  AddHandler cgi-script .cgi .pl を追記しましたが、まったく動きません。 上記の設定はまちがってますでしょうか? ほかになにを設定すればいいでしょうか? 知人に聞いたところ、あとドキュメントルートの設定ができればいいと言われましたが、設定ファイルのどこをいじっていいかわかりません。 ドキュメントルートの設定方法がわかりません。 教えてください。

    • ベストアンサー
    • CGI
  • cgi-binにアクセスするとforbiddenになってします。

    apache2.0.63をインストールし設定してもhttp://localhost/cgi-bin/ にアクセスするとforbidden、localhost/cgi-bin/index.cgiに アクセスするとInternet Sever Errorと出てしまいます。 環境はwindowsvistaでcgi-binフォルダのパーミッションもプロパティ でアクセス許可をフルコントロールにしたので問題ないと思います。 httpd.confはhttp://win.kororo.jp/archi/www/apache_fast.phpの 上から「CGI・SSIを使えるようにする」の 「AddHandler cgi-script .cgi //先頭の#を取り除く」までをそのまま真似しました。 それプラスDocumentRoot "パス"の下の<Directory "C:/apache2/htdocs">のパスをDocumentRootと同じパスに設定しました。 それとhttp://blog.goo.ne.jp/xmldtp/e/50e19ae5e407dcf822f40b472e4295e8 もすべて確認しましたが問題なかったです。 もし他に足りないことがあったら教えてください。 ちなみにapache2.0.63はリリースが1月20日とサイトに書いてあったのですが修正されて中身が変わってることもあるのでしょうか。 前は上記の設定だけで出来たのですが・・・

    • ベストアンサー
    • CGI