設定は、使用するJava EEサーバーのブランドによって異なります。 Apache Tomcatは、Apache Webサーバーとの非常に優れたAJP統合を備えているので、この設定例で使用する予定です。
あなたは、ApacheでURLの再マッピングを行いたいと書いています。私はあなたのアプリケーションにURLを動的に生成することを非常に困難にするので、強くアドバイスします。そのフレームワークのリンク生成サポートを維持するために、WebフレームワークのURLマッピング機能をうまく使用することができます。
私はStrutsに精通していませんが、この基本機能をサポートしていない場合は、Stripes frameworkまたはより複雑なSpring MVCフレームワークに切り替えることをお勧めします。さらにJSPを使いたいと書いているので、MVC patternを使ってこれらのフレームワークをサポートすることをお勧めします。つまり、URLをアクション/コントローラオブジェクトにマップし、決してJSPファイルに直接マップすることはありません。
.htaccessの設定は、着信URLの末尾が.action
のものをJava EEサーバーに渡します。 URLは、(オプションの)パラメータを含む要求されたURLとまったく同じように渡されます。ポートがJava EEサーバーのAJPリスナーポートであることを確認してください(または、設定したポートに変更してください)。
# Example .htaccess
#
# Please make sure 8009 is the port number of your Java EE server
RewriteEngine On
RewriteBase/
RewriteRule ^(.*\.action)$ ajp://127.0.0.1:8009/$1 [P,QSA,L]
また、Apacheを正しく設定していることを確認してください。たとえば、あなたが正しいモジュールを構成しておく必要があり、これらは(あなたがすべてのそれらを必要としないかもしれませんが)、私が有効になっているものです:Struts2の現在のバージョンを使用している場合
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
答えはどこですか? –
私はhttpd.confでそれらを有効にしました。しかし、私が.htaccessファイルをどこに置くか、どのようにポートを8009に設定するのか? – kamaci
.htaccessはApache WebserversのWebサイトディレクトリのルートに置かれます(WEB-INFではなく!)。ポート8009はデフォルトのポート番号です(それ以外の場合はconf/server.xmlで設定します)。同じサーバーにない場合は、このポートをファイアウォールで開く必要があります。 – Kdeveloper