- PR -

Apache+PerlでMethod Not Allow

1
投稿者投稿内容
なんでも屋
常連さん
会議室デビュー日: 2004/11/17
投稿数: 20
投稿日時: 2006-07-03 12:21
こんにちは。
LinuxではなくUnixなのですが、Apacheなのでこちらに投稿させて頂きました。
環境はSolaris8+Apache1.3.36+Perl5.8.8です。
やろうとしていることは、htmlのactionで.shtmlを呼び出し、.shtmlに埋め込まれているPerlを実行させることです。
まずテストとして以下の2つのファイルをドキュメントルートに用意しました。

test.html
------------------------------------------
<html>
<body>
<form METHOD=POST ACTION="/~hoge/test_include2.shtml" onSubmit="return">
<H2>
USERID&nbsp;:<input TYPE="text" NAME="userid" VALUE="" SIZE=10 MAXLENGTH="10">
<p>
PASSWD:<input TYPE="password" NAME="password" VALUE="" SIZE=10 MAXLENGTH="10">
<p>
</H2>
<input TYPE="submit" NAME="entry" VALUE="ENTRY">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</body>
</html>
------------------------------------------

test.shtml
------------------------------------------
<html>
<body>
<p>SSI sample page.</p>
<!--#include file="test_footer.html" -->
</body>
</html>
------------------------------------------

ブラウザでhttp://localhost/~hoge/test.htmlを開き、ENTRYボタンを押すと
Method Not Allowed
The requested method POST is not allowed for the URL /~hoge/test_include2.shtml.

となってしまいます。
なお、ブラウザでhttp://localhost/~hoge/test.shtmlを開いた場合は正しくtest_footer.htmlが開きます。

原因および解決方法をご存知の方がいらっしゃいましたらご教授下さい。
宜しくお願い致します。

その他の情報として・・・
httpd.confの主要な部分
------------------------------------------------
AddHandler cgi-script .cgi
AddType text/html .shtml
AddHandler server-parsed .shtml
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/*/public_html>
AllowOverride All
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
------------------------------------------------

ドキュメントルートの.htaccess
------------------------------------------------
Options Indexes Includes
Addtype text/html .shtml
AddHandler server-parsed .shtml
------------------------------------------------
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2006-07-03 23:24
なんでも屋さんのapacheは*.shtmlがPOSTを受け取らない設定に
なっているのではないでしょうか?(ディフォルトはこう)

test.htmlの"METHOD=POST"を"METHOD=GET"に変えてみてください。
なんでも屋
常連さん
会議室デビュー日: 2004/11/17
投稿数: 20
投稿日時: 2006-07-04 11:28
返信ありがとうございます。
引用:

Java僧さんの書き込み (2006-07-03 23:24) より:
なんでも屋さんのapacheは*.shtmlがPOSTを受け取らない設定に
なっているのではないでしょうか?(ディフォルトはこう)


前述のhppd.confと.htaccessの設定だけでは不十分でしょうか?
.htaccessを
Options ExecCGI Includes
AddType text/x-server-parsed-html .shtml
AddType application/x-httpd-cgi .cgi .pl
のようにしてみても結果は同じでした。
もしご存知でしたらご教授下さい。
引用:

test.htmlの"METHOD=POST"を"METHOD=GET"に変えてみてください。


.shtmlのソースがブラウザに表示されました。
GETはOKという事でしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)