プロが教える店舗&オフィスのセキュリティ対策術

現在ビルダー関連(ジャングルのビジネステンプレート)ホームページを作り、さくらインターネットのcgiを利用してメールフォームを作成していますが、下記の内容のコメントが出てしまいます。作成会社にもサーバー会社にも問い合わせをしたのですが互いに相手の方に問題があると言われてしまいます。申し訳ありませんが解決方法をご存知の方がいらしたら教えてください。お願いします。

Method Not AllowedThe requested method POST is not allowed for the URL /contact.html.
Apache/1.3.37 Server アカウント.sakura.ne.jp Port 80

最初450でしたが現在405 Method Not Allowedになっています。
この表示について調べるとapacheの調整やPOSTをGETにすなどの解決方法があるとありますが良くわかりません。
解決方法を教えてください。宜しくお願いします。

CGI専用の質問コーナーだったためここで質問してみました。質問する場所が違うようならすみません。

A 回答 (5件)

>[contact.cgi:126:die] Can't locate ./inc/contact_error.inc


これはライブラリファイルが見つからないと言う意味です。
例えば contact.cgiを置いているディレクトリが
/home/tarou/www/testcgi/ だと仮定すると、その下の
/home/tarou/www/testcgi/inc/ に
contact_error.inc と言うライブラリファイル(大雑把に言うとCGIの部品として読み込むFILEの事)
を置かなければいけません。
contact_error.inc を contact_error などとFILE名の一部を変えても駄目ですし
Contact_error.inc などと一部を大文字にしても駄目です。

また、そのパーミッションは特にいじっていなければ、取り合えずそのままで構いませんが
sakuraインターネットのようなSUEXEC環境であれば
/home/tarou/www/testcgi/inc/ は 700
/home/tarou/www/testcgi/inc/contact_error.inc は600
にすれば安全性は高まります。
 (その辺りの話は http://oshiete1.goo.ne.jp/kotaeru.php3?q=2202319 )

この回答への補足

umasikajiroさんに教えていただいたとおり設置したところ
起動させることが出来ました。大変ありがとうございました。
送信すると文字化けするのですが、さくらのQ&Aをみると
プラウザの調整をするようにとあります。明日こちらの方は明日さくらの方に問い合わせをしたいと思います。
本当にありがとうございました。

補足日時:2006/09/08 00:55
    • good
    • 0

え~っと<A HREF="">タグは判りますよね?


同じようにHTML文中のFORMタグで .cgiファイルを指定するのです
例えば form.cgi と言うfile名なら
<FORM ACTION="form.cgi" METHOD="post"> などと記述します

たぶん質問者さんの場合は contact.htmlと言うHTMLファイルの中にFORMタグが記述してあって
<FORM METHOD="post"> などとACTIONで.cgiを指定していないのではないですか?
その場合はFORMタグを記述してあるcontact.html自体にPOSTでデータを送信してしまいますので
ご質問のようなエラーになります。

>さくらインターネットのcgiを利用してメールフォームを
と有りますが、私自身もsakuraのレンタルサーバーを使っていますが
sakura側で用意されたメールフォーム用のCGI、もしくは、その説明ページは、どこにあるのか判りませんです

[補足要求]説明ページなどのURLを教えてください
 (サーバーコントロールパネルの中にある「 メッセージの投稿も出来るWebアンケート"Message ENQ"」 ってのは違いますよね?)

この回答への補足

質問させていただいているのに遅くなってすみませんでした。
早速教えていただいた記述を直したところ以前までのメッセージは出なくなりました。有難うございます。
ところで、代わりに次のメッセージが出てしまいました。

Catch: Thu Sep 7 18:43:06 2006
[contact.cgi:126:die] Can't locate ./inc/contact_error.inc in @INC (@INC contains: ./lib /usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach /usr/local/lib/perl5/5.8.8 .) at contact.cgi line 126.
> require './inc/contact_error.inc';
contact.cgi with Perl 5.008008 for freebsd

contact_errorというファイルは一緒にアップロードするように作成会社に支持されたのでそうしていますが、内容はわかりません。今日先方に言われ上記の文章をメールにて送付しましたが回答は時間がかかるとのことです。

テンプレートはビルダーベースで、ジャングルのデザインテンプレートビジネス版を使っています。メールフォームはここの会社のもので、説明は特にありません。
さくらの質問コーナーです。
http://faq.sakura.ad.jp/cgi-bin/sakura.cfg/php/e …
大変申し訳ありませんがまたよろしくお願いいたします。

補足日時:2006/09/07 18:41
    • good
    • 0

少なくともsakuraで使っているApache1.3系の場合


#2さんの言われるとおり、普通のhtmlぺーじなど
POSTを処理できないページに送信してしまうと、そのメッセージになります。
また.cgiであっても AddHandler cgi-script .cgi などが記述されていない、つまりCGIとして設定されていない状態でPOSTで送ると同じエラーになります。

FORMタグのActionでPOSTを処理出来るページを指定してください。

また過去にあった例として、ActionできちんとCGIを指定したのにうまくいかないと言う質問が某所で有りましたが
その時は、間違えてFORMタグを2重に記述していました。

## で、うちで試した限りではですが、Apacheでも2.0.55と2.2.0では普通の.htmなどにPOSTで送ってもエラーになりませんでした
もっとも、処理は出来ませんので何も変化無しですが、、、

#2さんへ
>contact.htmlの最後に「.」(ドット)があるのは
エラーメッセージでは 末尾に ドットが付くようです

この回答への補足

質問をしたのに遅くなりましてすみません。
ご丁寧に教えていただき有難うございました。
FORMタグのActionでPOSTを処理出来るページを指定してください、
というのは、
FormDate.pmというところを変更すればよいのでしょうか?
因みに変更しようとするとこのファイルは開けませんと出てしまいます。宜しくお願いいたします。

補足日時:2006/09/06 00:37
    • good
    • 0
この回答へのお礼

本当にご丁寧に有難うございます。
因みに追加なんですが、上記4の時間なんですが、更新するたび、その時間になります。

お礼日時:2006/09/07 18:53

>/contact.html.


通常、POSTのactionで指定するのはcgiだと思うのですが
その辺は大丈夫でしょうか?
あと、contact.htmlの最後に「.」(ドット)があるのは
記述ミス?
    • good
    • 0

サーバでPOSTメソッドが許可されていないということかと。


apacheの調整というのは、このPOSTメソッドを許可するということでは。
.htaccessの設定でできませんか?
できないようであれば、POSTに変わるもの(GETなど)にする必要があるということです(GETはお勧めしませんが)。

質問の本題とは違いますが。
↓こちらの質問はサイトとしては別のところだったのでしょうか。
http://okwave.jp/kotaeru.php3?qid=2377864
同じ「OKWave」ベースなので2重投稿になってます。気をつけてください^-^。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!