java - 创建.htaccess

标签 java regex apache .htaccess struts2

我正在使用 Struts2 开发一个项目。我的网页端使用jsp。我的应用程序使用 MySQL 数据库,并为其安装了 wamp 服务器。我的网址就像 localhost/xxx?name.action?blablabla... 而不是这个,我想重定向网址。例如,我想使用 localhost/name 或类似的东西,而不是我的网址上的 name.action 。另外,对于 .htaccess,我想通过它发送数据,例如 name.action?Id=$1... 以用于我在 Struts2 端的操作。但是我无法重定向网址,无法正确定义文档根目录和 .htaccess 文件。我该怎么办,你能一步一步解释一下吗?

谢谢。

最佳答案

您的配置取决于您要使用的 Java EE 服务器品牌。 Apache Tomcat与 Apache Web 服务器有非常好的 AJP 集成,因此我将在本示例配置中使用它。

您写道您希望在 Apache 中进行 URL 重新映射。我强烈建议不要这样做,因为这将使在应用程序中动态生成 URL 变得非常困难。您可以更好地使用 Web 框架的 URL 映射功能,以保持该框架的链接生成支持。

我对Struts不熟悉,但如果它不支持这个基本功能,我建议您切换到Stripes framework或者更复杂的 Spring MVC 框架。你进一步写你想使用JSP,所以我也推荐你使用MVC pattern所有这些框架的支持。这意味着您将 URL 映射到操作/ Controller 对象,而不是直接映射到 JSP 文件。

下面是一个 .htaccess 配置示例,它将把所有以 .action 结尾的传入 URL 传递到您的 Java EE 服务器。 URL 的传递方式与请求的 URL 完全相同,包括它们的(可选)参数。确保端口 8009 是您的 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。例如,您需要配置正确的模块,这些是我已启用的模块(尽管您可能不需要全部):

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

关于java - 创建.htaccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4439732/

相关文章:

java - 使用 JNI 构建 C++ Java 包装器

java - 将 JPanels 从其他类添加到 cardLayout

c - 如何在C中一一获取字符串的输入

php - SSL 和 .htaccess 重定向

java - Cordova 和 startResolutionForResult VS。开始 Activity 返回结果

java - 加入两个java流

python - 在 python 中格式化文本文件

用于在字符串中搜索的 Java 正则表达式

apache - 将Google Analytics(分析)添加到apache中的所有网页

c++ - apache 和 cgicc - 区分 post 和 get 变量