CGIを使ったパスによるダウンロード

このQ&Aのポイント
  • Dreamweaver CS5.5 (Mac版)を使ってウェブサイトを作成しています。無料CGIを利用してパスによるダウンロードフォームを設置しましたが、ダウンロードができません。
  • ログインフォームでパスを入力してボタンをクリックすると特定のファイルに飛ぶCGIを使用しています。しかし、ボタンを押しても意味不明文字が表示されるだけで、ファイルがダウンロードされません。
  • パスワードを入力し、ボタンを押すと設定しておいたzipファイルをダウンロードする方法を知りたいです。
回答を見る
  • ベストアンサー

CGIを使ったパスによるダウンロード

現在,Dreamweaver CS5.5 (Mac版)を使ってウェブサイトを作成しています(OSはMac OS X 10.6.8で,サーバーはロリポップのレンタルサーバー)。 パスによるダウンロードフォームを設置しようと思いまして,こちらのサイト↓ http://www.kent-web.com/pwd/login.html で無料CGI(アクセス制限・簡易タイプ)を入手しました。 教えて!gooでのアドバイスも受けて,何とか配布サイトの指示通りには無事に設置できたのですが,その先がうまくいきません。 上記無料CGIはログインフォームで,パスを入力してボタンをクリックすると特定のファイルに飛ぶというものなのですが, このリンク先にzipファイルを置いても,それだけではダウンロードできないものなのでしょうか。 具体的には, 上記CGIのうち,init.cgiに $cf{secfile} = 'zipファイルの相対パス(例えば,./private/secret.zip)'; と記述し,それをlogin.cgiに渡すようにしたのですが, それでは,パスを入力してボタンを押しても,大量の意味不明文字(文字化け)が出るだけで,zipがダウンロードされません。 ちなみに,zipファイルでなく,例えば画像ファイルにした場合には,ボタンを押すと,画像がブラウザ上で表示されます。 パスワードを入力し,ボタンを押すと,直接(途中にHTMLを噛ませたりしないで),設定しておいたzipファイルをダウンロードするようにしたいのですが,どなたかその方法をご存知の方がいらっしゃいましたら,ご教授願えると幸いです。

  • CGI
  • 回答数8
  • ありがとう数8

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

  • ベストアンサー
回答No.2

お使いのlogin.cgiの41行目が open(IN,"$cf{secfile}") or &error("open err: $cf{secfile}"); print "Content-type: text/html\n\n"; print <IN>; close(IN); の固定なので、CGI自体がファイルのダウンロードには対応できてないようです。 絶対パス記述の方式だと、Locationでのリダイレクトなので、移動先を直リンクされると、 認証なしでだれでもダウンロードされますので用途には、厳しい気がします。 別の CGIを探すか、 拡張子がzipのときは、 my $size = -s $cf{secfile}; my $filename = $cf{secfile}; $filename =~ s|([^/]*?)$||; open(IN,"$cf{secfile}") or &error("open err: $cf{secfile}"); print "Content-Disposition: inline; filename=\"$filename\"\n"; print "Content-Length: $size\n"; print "Content-Type: application/octet-stream\n"; print <IN>; close(IN); のコードをこのlogin.cgiってファイルに挿入すれば、ダウンロードしてくれると思います。 (試してないので、タイプミスあるかも)

_julius
質問者

お礼

早速のご回答,並びにわざわざコードまで書いて頂いて,誠に有り難うございます。 >コードをこのlogin.cgiってファイルに挿入すれば、ダウンロードしてくれると思います。 しかし,残念ながらこのコードをそのままlogin.cgiに挿入(ちなみに,末尾に挿入しました)してみたのですが,問題は改善しませんでした。 せっかくご尽力頂いたにもかかわらず,申し訳ありません(未熟ながらじっくり眺めてみたのですが,タイプミスがあるとは思えませんでした)。 ご回答,誠に有り難うございました。

その他の回答 (7)

回答No.8

どうも、無事解決されて良かったです! 私もホッと&スッキリしました。 ベストアンサーはもちろんNo.2の方でおねがいします。 ここはGive and takeなサイトで良いですね。 というのも、私も自分の質問をしており、そのご回答待ち時間に、自分に出来る分野でご回答させて頂いております。 なので、次回は、私は質問者の立場でお会いするかもしれません! ・・・ではまたサイト内のどこかでお会いする日まで・・・(^^)/

_julius
質問者

お礼

>ここはGive and takeなサイトで良いですね。 >というのも、私も自分の質問をしており、そのご回答待ち時間に、自分に出来る分野でご回答させて頂いております。 あ,同じです(笑)。 質問を投稿中は教えて!gooに頻繁にアクセスしたりするので,自然,回答する機会も増えますね。 私も,takkun3728さんから頂いた恩を,どこかで誰かに返したいものです。 >なので、次回は、私は質問者の立場でお会いするかもしれません! 法律学(特に刑法学)が専門なので,その手の質問があれば,タイミングが合えばいつか直接ご恩が返せるかもしれません! それでは,有り難うございました^^

回答No.7

どうもです。 偶然私も同じサーバの利用者だったので、テストしてみました。 その結果、確かに500がでるようでした。 そこでレスポンスヘッダーまわりを確認したところ、最後の Content-Type: application/octet-stream の出力のあとで、ヘッダー終端を示すため、もう一個改行(\n)が 必要だったことがわかりましたので、修正したところ、500エラーが出なくなりました。 このため、以下に修正コードを記します。 では今回もご参考まで・・・(でもたぶんこれでいけると思いますよ!^^) ---以下コード(当該login.cgi,39行目~)--- # HTMLの場合 } else { my $size = -s $cf{secfile}; my $filename = $cf{secfile}; if( $filename =~ m|.*/(.*)$|i ) { $filename = $1; } open(IN,"$cf{secfile}") or &error("open err: $cf{secfile}"); print "Content-Disposition: inline; filename=\"$filename\"\n"; print "Content-Length: $size\n"; print "Content-Type: application/octet-stream\n\n"; print <IN>; close(IN); } exit; } #----------------------------------------------------------- # 認証画面

_julius
質問者

お礼

いけた… ついにいけましたよ!! ほんっとうにありがとうございます。 takkun3728さん,superside0さんには本当にお世話になりました。 無償の質問サイトなのに根気づよく丁寧にご指導頂きまして,感謝し尽くせないほどです。 ここ数日の悩みがやっとスッキリして,晴れ晴れとした気持ちです。 >偶然私も同じサーバの利用者だったので、 この偶然が神懸かりでした。 質問は数日のうちに閉め切る予定です。 ベストアンサーは最初にコードを書いて下さったsuperside0さん,最終的な決め手を提供して下さったtakkun3728さんで迷うところですが, やはりtakkun3728さんのご指示通り,コードを書いて下さった(本当は仕事として発注すべきことなのに!)superside0さんにしたいと思います。 でも,takkun3728さんも,superside0さんと同着ベストアンサーです!私の心の中では! >でもたぶんこれでいけると思いますよ!^^ こういう温かいお言葉が嬉しかったです。 本当に,本当に,有り難うございました。

回答No.6

質問者さん、No.2さん、どうもです。 うーん、まだ500でていますか・・・。 改造前は動いていたのですよね? では、動いている状態からステップバイステップでやってみて、どの時点で500エラーが出るか確かめてみたらいかがでしょう。 手順としてはこんな感じです: 0、改造前の動く状態(スタート)       ↓ 1、login.cgiをエディタで開いて上書き保存するだけで実行してみる。       ↓ 2、目指す完成コードを参考に、login.cgiの39行目 # HTMLの場合 } else { 以降に、変更部分を少しずつ挿入しては都度実行していく。まずは my $size = -s $cf{secfile}; を挿入して実行。       ↓ 3、以降、同様に、 my $filename = $cf{secfile}; を挿入して実行。       ↓ 4、 if( $filename =~ m|.*/(.*)$|i ) { $filename = $1; } を挿入して実行。       ↓ 5、 print "Content-type: text/html\n\n"; の部分に、 print "Content-Disposition: inline; filename=\"$filename\"\n"; print "Content-Length: $size\n"; print "Content-Type: application/octet-stream\n"; を上書きして実行・・・。 といった感じです。 上記の1~5までのどの時点から、500エラーが出るようになるかがわかるだけでも、大分原因が絞り込めるかもしれません。 ちなみに、上記のことを試す場合は、今までいじっていたlogin.cgiではなくて、新しくダウンロードした新品のlogin.cgiを使い、それが動作するようにした時点から始めると良いと思います。 では今回もご参考まで、無事解決されると良いですね。

_julius
質問者

お礼

本当に本当に,親切にして頂いて,ありがとうございます!! ご指摘頂いた方法でチェックをかけてみたところ,5のタイミング, つまり, print "Content-type: text/html\n\n"; を print "Content-Disposition: inline; filename=\"$filename\"\n"; print "Content-Length: $size\n"; print "Content-Type: application/octet-stream\n"; に入れ替えたところで500エラーが生じるので,ここの問題なのだとは思うのですが, どこにもミスがあるように思えません。 試しに,この3行の順番を入れ替えてみたり(検索した限り,DispositionがTypeより先にあるとエラーがでる〔500エラーではないですが〕という方がいたので),print "Content-Length: $size\n";を削ってみたりしたのですが,駄目でした(全て500エラー)。 本当に,ご尽力に報いられず,歯がゆく,申し訳ない限りです。

回答No.5

No.4さん、フォローありがとうございます! パス付きのファイル名からファイル名だけを取り出すのに $filename =~ s|([^/]*?)$||; って書いちゃいましたけど、これじゃディレクトリ名の取り出しですね。 間違えてました。 $filename =~ s|^.*/||; って書きなおそうと思いましたが、 No.4さんに適切に修正して頂いて ありがとうございます。 500のエラー(Server Internal Error)の件は、 perlのパスの間違いとか、ブランクのつもりが全角の空白をいれたとか、 改行コードの間違いとか、パーミッション設定とか、そういうのだと思います。 特に多いトラブルは、もともと配布されたCGIファイルは、CRの改行コードだったのに ローカルで修正したときに、Windows形式のCR+LFとか、MacのLFの改行コードで保存してしまって 改行コードを変えてしまい、そのままではUNIX系のサーバーでは動かないというケースです。 改行コードを変えてしまっても、ftpするときに、 画像ファイルやzipファイルを転送するバイナリーモードでなく、 サーバーの改行コードに合わせてくれるアスキーモードで転送すれば 解決できると思います。

_julius
質問者

お礼

お礼が遅くなってしまい申し訳ありません。 昨日色々試行錯誤してみたのですが,結局500エラーの原因を突き止めることができませんでした。 >perlのパスの間違いとか、 perlのパスは,ロリポップの指定は/usr/local/bin/perlで,login.cgiでは/usr/local/bin/perl --としています。 これは,アスキーモードで転送したはず(FTPExtensionMapMac.txtでの設定はチェック済)なのに,上手く動作しなかったために" --"を挿入したものです。この点は,過去にhttp://oshiete.goo.ne.jp/qa/7606192.htmlで質問させて頂きました。 >ブランクのつもりが全角の空白をいれたとか、 構文チェック用のフリーcgiでチェックし,目視でも入念にチェックしたのですが,やはりコードに問題はないようです。 >改行コードの間違いとか、 >特に多いトラブルは、もともと配布されたCGIファイルは、CRの改行コードだったのに >ローカルで修正したときに、Windows形式のCR+LFとか、MacのLFの改行コードで保存してしまって >改行コードを変えてしまい、そのままではUNIX系のサーバーでは動かないというケースです。 サーバーに置かれたlogin.cgiの改行コードはLF(UNIX形式)で間違いないようですし, >パーミッション設定とか、 これも,ロリポップ指定の700に設定されています。 色々と可能性を探ってアドバイスを頂いたにもかかわらず,良いご報告ができず,申し訳ありません。 もう少し粘って原因を究明したいと思います。

回答No.4

横からすみません。 No.2さんのコードで500エラーがでたとのことですが、とりあえず私の環境でチェックしてみたところ、構文(perl -c)はOKなようでしたので、下記の点を含め、今一度確認されてみてはいかがでしょう? ・修正コードを正しく反映しているか。(念のため下記に両側のコメント部分からの修正後コードを記します) ・文字コードを変えてしまってないか。(Shift-JISです) ・コピペしたときに変なコードが混じっていないか。ダブルクオートなどがきちんとしているか。 ・パーミッションは正しく設定されているか。 ・など シェルが使えるようであれば、perl -c login.cgiでチェックすると、500エラーの理由が分かることが多いのですが、そうでなければ試行錯誤してみるほか無いと思います。 ところで、No.2さんのコードですが、私のテスト環境では、パスを除いたファイル名を取得する部分が、うまく機能しなかったので、下記のように修正してみました。(ただ、上述の通り、構文はチェックはパスしましたので、500エラーの原因ではないと思います) では今回もあくまでご参考まで・・・。 (P.S. 解決した場合はベストアンサーはNo.2の方にして頂ければ幸いです。回答内に具体的なコードを書いてくれる方は、とても素晴らしい回答者ですので・・・。) ---以下コード(当該login.cgi,39行目~)--- # HTMLの場合 } else { my $size = -s $cf{secfile}; my $filename = $cf{secfile}; if( $filename =~ m|.*/(.*)$|i ) { $filename = $1; } open(IN,"$cf{secfile}") or &error("open err: $cf{secfile}"); print "Content-Disposition: inline; filename=\"$filename\"\n"; print "Content-Length: $size\n"; print "Content-Type: application/octet-stream\n"; print <IN>; close(IN); } exit; } #----------------------------------------------------------- # 認証画面

_julius
質問者

お礼

お礼が遅くなってしまい申し訳ありません。 昨日色々試行錯誤してみたのですが,結局500エラーの原因を突き止めることができませんでした。 >修正コードを正しく反映しているか。(念のため下記に両側のコメント部分からの修正後コードを記します) >コピペしたときに変なコードが混じっていないか。ダブルクオートなどがきちんとしているか。 構文チェック用のフリーcgiでチェックし,目視でも入念にチェックしたのですが,やはりコードに問題はないようです。 また, >文字コードを変えてしまってないか。 文字コードもShift-JISになっていますし, >パーミッションは正しく設定されているか。 これも,ロリポップ指定の700に設定されています。 色々と可能性を探ってアドバイスを頂いたにもかかわらず,良いご報告ができず,申し訳ありません。 もう少し粘って原因を究明したいと思います。

回答No.3

説明不足でした。 login.cgiの最後に挿入するのではなくて 41行目からの open(IN,"$cf{secfile}") or &error("open err: $cf{secfile}"); print "Content-type: text/html\n\n"; print <IN>; close(IN); の代わりに、記載したコード入れかえるということです。 (もう少しプログラムが理解できるようなら、 指定されたファイルの拡張子によって、if文によって、いままで通りのコードと 記載したコードか切り替われば、汎用性が高くなるかなと・・・)

_julius
質問者

お礼

わざわざ補足していただきありがとうございます。 お教え頂いた通り,変更した(変更後の39~51行目は下記)のですが,そうすると,500エラーが返ってきてしまいます。 >もう少しプログラムが理解できるようなら、 >指定されたファイルの拡張子によって、if文によって、いままで通りのコードと >記載したコードか切り替われば、汎用性が高くなるかなと・・・ そうですね。今回の問題が解決したら,次はif文に挑戦したいと思います! ─記─ # HTMLの場合 } else { my $size = -s $cf{secfile}; my $filename = $cf{secfile}; $filename =~ s|([^/]*?)$||; open(IN,"$cf{secfile}") or &error("open err: $cf{secfile}"); print "Content-Disposition: inline; filename=\"$filename\"\n"; print "Content-Length: $size\n"; print "Content-Type: application/octet-stream\n"; print <IN>; close(IN); } exit; }

回答No.1

当該CGIについて詳しいわけではないので、推測ですが、たぶん、$cf{secfile} を相対パスから指定すると、そのファイルの中身を読み込んで出力する仕様なのではないでしょうか。 だとすれば、出力の際に、Content-typeなどのレスポンスヘッダーが正しく出力されていないため、ブラウザがZIPファイルをテキストファイルかなにかと勘違いし、中身をそのまま表示してしまったのかもしれません。(バイナリなので当然文字化けする) とすると、平たく言えば、そのCGIの仕様なのかもしれません・・・。 ただ、ご質問にあるURL先のドキュメントを見ると、下部に、補足事項として、「CGIプログラムをアクセス制限する場合、隠しファイルの指定を http://から始まる絶対パス(URL)で指定してください。 」とあります。 この方法(絶対パスで記述する)であれば、リダイレクトになるので、理論上はご質問のような文字化け表示は起こらないかもしれませんが、いかがでしょうか? (当該ドキュメントには、「ただし、この場合、隠しファイルへリダイレクトするだけですので、移動先のURLは分かってしまいます」とあるので、それでも構わないならですが・・・。) なお繰り返しますが上記は私の推測であり、間違っている可能性もありますので、あくまでご参考になれば幸いです。

_julius
質問者

お礼

早速のご回答,誠に有り難うございます。 >平たく言えば、そのCGIの仕様なのかもしれません そうですか…てっきり,当然ダウンロードされるものだと思っていました。 >この方法(絶対パスで記述する)であれば、リダイレクトになるので、 >理論上はご質問のような文字化け表示は起こらないかもしれませんが、いかがでしょうか? 確かにこの方法だと上手くいきます(もっとも,.htaccessファイルを削除する必要がありますが)が,やはりURLが解ってしまっては困るので,別の方法をもう少し模索してみたいと思います。 ご回答,誠に有り難うございました。

関連するQ&A

  • CGIのパスについて?

    HTMLで表示するタイプのBBSのパスについて教えて下さい。同じフォルダー( xx )の中にCGIファイル( bbs.cgi )とHTMLで表示する部分のファイル( index.html )と、プログラムには関連の無い只の案内ファイル( info.html )があります。index.html とinfo.html 間は問題ないのですが、フォーム(別ページでの呼出し。bbs.cgi ?mode=formでの呼出し。)ページからinfo.html へは”info.html ”でリンクを張ると、できません。タスクバーに・・xx/bbs.cgi /info.html /となります。そこで、”../info.html ”でリンクを張ると、そちらへ移動できますが、info.html からフォームへ戻るパスを”bbs.cgi ?mode=form”や”http://www・・・bbs.cgi ?mode=form”(絶対パス)で書くと、1回目は戻れますが、行ったり来たりが出来ません。フォーム→info.html →フォーム→ (ダメ)info.html 。パスはどう書けば良いのでしょうか?ちなみにローカルでのテストです。2回めのinfo.html へのタスクバー表示は1階層上を指しています。少し分かりにくくてすみません。要は行ったり来たりできるパスの書き方を教えて下さい。m(__)m

    • ベストアンサー
    • CGI
  • CGIの文字コードについて

    CGIを下記URLのサイトから落として、メールフォームを設置しました。 http://www.synck.com/contents/download/cgi-perl/mailform_jcode.html 「メールフォームCGI UTF-8対応版」というメールフォームです。 mailformというフォルダの中に send.cgi(プログラム本体) check.cgi(設置確認プログラム) count.dat(通し番号を記録するファイル) があり、send.cgiはメールアドレス等を書き換える程度の編集をしております。 フォームには必須項目を設け、何も入力せずに送信ボタンを押すと、「●●が入力されていません」というようなダイアログが表示されます。ですが、必須項目を入力して送信ボタンを押すと500エラーがでます。 「●●が入力されていません」という表示がなされるということは、cgiの設置自体はとりあえずできていると考えてよろしいですよね? 文字コードが問題だと思い、検索かけてみたもののよく理解できず、色々な文字コードで保存しては、実際にアップしたメールフォームを使って試していたら、一度だけ、設定したメールアドレスにきちんとメールが届きました。しかし、自動で送信される送信内容を確認するメールの方が文字化けしてしまいました。 逆に、自動で送信される送信内容の確認メールは届かないが、文字化けしたメールが設置したアドレスに来たこともありました。 設置者へのメールを送信者への内容確認メールが文字化けせずにきちんと送れたことはありません!! 長くなりましたが、どの文字コードで読み込み、そしてどの文字コードで保存したら良いか分かりません。 cgiの編集はTerapad、サーバはさくらインターネットのライトです。 サーバへのアップは直接さくらインターネットにログインして行っております。 ※CGI初心者です。初めて設置する完全素人です。 よろしくお願いします!!

    • 締切済み
    • CGI
  • CGI設置

    AN HTTPDについて AN HTTPDで自宅サーバーのWebサーバーとして使っています。 そこでCGIを設置したくてhttp://www.activestate.com/activeperl/ をインストールしましたが、 編集PCのホームページビルダー11のプレビュー画面では メールフォームを設置したときに送信というボタンを押したらダウンロード画面になってしまいます。 http://IPアドレスからアクセスした場合はページが表示されませんと出ます。 どうしたらでなくなり送信ができるようになりますか? またsendmane.exeってのをしましたが、最終的にできませんでした。 CGIの編集では、一番上には、#!/usr/local/bin/perlのパスを入力しています。 メールフォームは配布サイトからダウンロードしたやつを使っています。送信ができそうでできない状態です・・。 http://apps.cside.com/cgi/mail/kisomail/ OS:WindowsXPSP3 クライアントPC&サーバーPCも同じ。 ご存知の方ご回答をよろしくお願いしますm(_)m

    • 締切済み
    • CGI
  • ダウンロードcgi

    zipファイルをダウンロードするcgiを作りたいのですが、どこかに配布しているサイトはありますか?? よろしくお願いします

    • ベストアンサー
    • CGI
  • 特定のCGIだけ、作動するかわりにダウンロードされてしまいます

    いつもお世話になります。 今日、カウンタのCGIと、そのカウンタをセッティングするCGIを二つのサーバに設置したのですが、片方のサーバに設置したセッティングCGIがおかしいんです。 本当ならアクセスするとパスワードを求める画面になるはずですが、「次の場所からダウンロードするように選択しました」という、Windowsではおなじみのダイアログが現れて、そのパスワードを入れるページ自体をダウンロードすることになってしまいます。 ここで「ダウンロード」にせずに「上記の場所から開く」にすればパスワード入力画面は開くのですが、これはローカルディスク上で開いていることになりますから、もちろんCGIとしては作動してくれません。 しかし、こんな現象が発生してしまうのはWin98やWin MEでアクセスした場合で、Macでアクセスすると正常にパスワードを求めてきて、もちろんそのまま認証してカウンタのメンテができます。 また、このWinで正常に作動しないのは2つのサーバに設置した内の片方だけで、全く同じものを全く同じ名前とセッティングでアップしてある、もう一つのサーバ上のCGIはMacでアクセスしようがWinでアクセスしようが正常に作動するのです。 しかも、異常がある方のCGIと同じディレクトリにアップしてある、他のCGIは全て正常に作動するのです。 パーミッションの設定も、CGIは755、ログは666と、間違っていないことを確認してあります。 perlへのパスも、Macでなら動くことでもおわかりのように、間違っていません。 尚、このCGIはDOS-Vの改行コードで記述してあります。 どなたかこの異常の原因がおわかりの方はいらっしゃいませんでしょうか? どうか解決のためのアドバイスをお願いいたします。

    • ベストアンサー
    • CGI
  • ログインCGI設置での500エラー

    現在,Dreamweaver CS5.5 (Mac版)を使ってウェブサイトを作成しています(OSはMac OS X 10.6.8で,サーバーはロリポップのレンタルサーバー)。 ログインフォームを設置しようと思いまして,こちらのサイト↓ http://www.kent-web.com/pwd/login.html で無料CGI(アクセス制限・簡易タイプ)を入手しました。 そして,指示にあるように設定をしたのですが,どうしても500エラーが返ってきてしまいます。 具体的には, (1) index.htmlと同じ階層にloginという名前のフォルダを設置。 中身はlogin.cgi,check.cgi,init.cgiとprivateフォルダ,tmplフォルダ。 privateフォルダの中身は.htaccessとsecrete.html。 tmplフォルダの中身はenter.htmlとerror.html。 (2) enter.htmlの <form action="!login_cgi!" method="post">を <form action="../login.cgi" method="post">へ変更,保存。 ※login.cgiとcheck.cgiの#!/usr/local/bin/perlは変更していない(http://lolipop.jp/manual/hp/cgi/での指示と同じだったため。もちろん#!は消していない)。 (3) ファイル全てをDreamweaverを使ってアップ。 (4) ロリポップFTPから,login.cgiとcheck.cgiのパーミッションを700に。 int.cgiのパーミッションを600に。 ※パーミッション設定の値はロリポップ側の指示(http://lolipop.jp/manual/hp/cgi/)による。 (5) check.cgi直接アクセスしてみるも,500エラー(CGIが動作していません)。 enter.htmlにアクセスしてみると,403エラー(アクセスが禁止されています)。 (6) zip解凍時からなぜか存在した,tmplフォルダ内の.htaccess(deny from all)を削除。 ついでに,同じくなぜか存在したprivateフォルダのindex.htmlとtmplフォルダ内のindex.htmlを削除(いずれも中身はhtmlタグとbodyタグのみ)。 すべて,ローカルサーバからもリモートサーバからも取り除く。 (7) check.cgi直接アクセスしてみるも,500エラー(CGIが動作していません)。 enter.htmlにアクセスしてみると,認証画面が正しく表示されるが,(パスが正しくても誤っていても)パスを入力して進むと500エラー。 (8) 試しに,KENT-WEBの指示通り, login.cgiとcheck.cgiのパーミッションを755に。 int.cgiのパーミッションを644に。 しかし,やはり同じように500エラー。 (9) パーミッションの値を700と600に戻し, 念のため,.htaccess,secrete.html,enter.html,error.htmlのパーミッションを604に(ロリポップ〔http://lolipop.jp/manual/hp/cgi/〕指示の値)。 しかし,やはり同じように500エラー。 どなたか解決方法をご存知の方がいらっしゃいましたら,ご教授願えると幸いです。

    • ベストアンサー
    • CGI
  • cgiをhtmlとして表示したい

    無料のcgiファイルを設置しお問い合わせフォームを作りました。 http://mydomain/question.cgi ←みたいなURLでアクセスできるようにしたのですが、 http://mydomain/question.html のURLでお問い合わせフォームにアクセスできるように するにはどうしたらいいですか?ちなみに.htaccessはレンタルサーバーで使えます。 よろしくお願いします。

  • ダウンロードカウンタの設置

    自分のサイトでアップしている圧縮ファイルのダウンロード数を 知りたいためフリーのダウンロードカウンタ(CGI)を設置したいと 思っているのですが、どうしても根本的な事からわかってないようで 途中でつまづいてしまいます。 サーバーはCGI設置可能でサイトはhtmlを書いてFTPで転送して います。 特にファイルの置いてあるhtml側の書き換えがよくわからず困ってます。 よく例としてあがっているアドレスに"*****"となっていたり しますがそこは自分のサイトのファイルのフルパス?を入力すれば いいんでしょうか?

  • CGIなどは絶対パスでも良い?相対パス?SEO的

    こんにちはサンタです。 よろしくお願い致します。 php,perlで作成された メールフォームCGI スケジュールCGI カレンダーCGI を、ホームページに設置致しました。 ネット上で動いております。 さて、これらのCGIを設置するのには、例えばschedule.cgiなどは、相対パスとして、リンクしたほうが宜しいのでしょうか? 現在は、相対パスなのですが、メンテナンスを考えますと、絶対パスの方が、楽だと感じました。ですが、SEO的には、相対パスでリンクしたほうが良いのかなと思い、質問させて頂きました。 1,技術的な不具合の問題があるか、、、。 2,SEO的な問題があるか、、、。 どうぞ、よろしくお願い致します。 失礼致します。

    • ベストアンサー
    • CSS
  • サイトにCGIでお問合せフォームを設置したいです

    自分で作ったサイトにCGIでお問合せフォームを設置したいのですが、設置方法がわかりません。 フリーの素材をダウンロードしたものの、何をどうすればいいのかわかりません。 以下、フリーのダウンロード先になります。 http://www.synck.com/contents/download/cgi-perl/mailform.html メールフォーム UTF-8専用(無料CGI)をダウンロードしました。 サイトはDWCS3で作りました。 OSはXPです。 レンタルサーバーはXサーバーを使用します。 以上、よろしくお願いいたします。

    • 締切済み
    • CGI

専門家に質問してみよう