【发布时间】:2015-02-14 15:42:15
【问题描述】:
我正在尝试重写 apache 中的 url,它在内部将请求重定向到 apache tomacat
这是我的 httpd.conf 代码
<IfModule mod_rewrite.c>
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
ProxyPass / http://localhost:8080/myapp/my.html
ProxyPassReverse / http://localhost:8080/myapp/my.html
RewriteEngine on
RewriteRule ^/(.*)/$ http://localhost:8080/myapp/my.html?product=$1 [QSA]
</IfModule>
所以基本上我要做的是如果我输入 localhost/myapp 那么它应该将我重定向到 localhost:8080/myapp/my.html
接下来如果我输入 url localhost/myapp/8 它应该在内部重定向到 localhost:8080/myapp/my.html?product=8。
现在的问题是 ProxyPass 工作得非常好。但重写规则显示 404 错误。 如果我删除 ProxyPass 代码,那么相同的重写规则会起作用,但它会在浏览器中显示修改后的 url。 所以我想知道我应该在哪里放置 RewriteRule 以使其与 ProxyPass 一起工作,并且重写规则显示修改后的 url?
【问题讨论】:
-
我也遇到了类似的问题。你有什么解决办法吗?
-
还没有。如果您对此有解决方案,请告知。 @大卫
标签: mod-rewrite httpd.conf apache2.2