- - PR -
ApacheでコンテントタイプによりStrutsのActionを実行
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-02 16:50
お世話になります。
Strutsを用いてWebシステムを作成しています。 今、指定されたディレクトリにある、指定された拡張子のファイルにアクセスした場合に、 StrutsのActionを実行させる、ということを行おうと思っています。 そこで、Apacheのhttpd.confで以下のようにActionディレクティブを設定しました。 ○ Apacheのhttpd.conf(追加した内容のみ) Alias /doc/ "C:/sample_document/" <Directory "C:/sample_document/"> AddType sample/doc .html .txt .pdf Action sample/doc /sample/test.do </Directory> 上記設定をした状態で、 http://localhost/doc/test.html とアドレスバーに打ち込んでアクセスしてみたのですが、 HTTPステータス 404 - /sample/test.do/doc/test.html type ステータスレポート メッセージ /sample/test.do/doc/test.html 説明 The requested resource (/sample/test.do/doc/test.html) is not available. と404エラーが出てしまいました。 (C:/sample_document/test.htmlは存在しています) 下記Actionディレクティブの設定で、/doc/test.htmlにアクセスされた場合、 /sample/test.doが実行されると思ったのですが、打ち込んだパスの前に /sample/test.doが挿入されたURLとなっているだけのようです。 http://localhost/doc/test.html とアクセスされた場合に、 http://localhost/sample/test.do が実行されるようにするにはどうすればよいでしょうか? 【環境】 Windows XP Apache 2.0.58 Tomcat 5.5.12 Struts 1.2.4 mod_jk2 | ||||
|
投稿日時: 2006-06-02 17:39
その設定だと、test.doへのリクエストをApache自身が処理しようとしますよね。
Tomcatに回すようにしないとダメなのでは? mod_jk2でなくmod_jkでの書き方になりますが、 Tomcat側で/docというコンテキスト名を持つWebアプリをデプロイした上で、
として、/doc/*.(html|txt|pdf) なリクエストをTomcat側に処理させたらどうでしょうか。 あと、mod_jk2は既にdeprecatedなので、mod_jkの使用をお薦めします。 | ||||
|
投稿日時: 2006-06-02 18:12
ここだけなら、mod_rewriteを使用すれば実現可能かと 思います。 何がやりたいのかが文脈では把握できなかったので 解決になるかどうかは分かりませんが。 |
1