透明重定向到端口8080

时间:2012-10-09 13:32:25

标签: regex apache .htaccess mod-rewrite redirect

我的服务器端口8080上有一些Web应用程序可用。

由于我的一些用户因防火墙而无法访问端口8080,我想在我的apache服务器上设置重定向。我想要以下网址

http://dev2.test.com/tomcat/somewebapp/restofthepath

显示

可访问的内容
http://dev2.test.com:8080/somewebapp/restofthepath

当然我不希望用户输入第一个地址来查看第二个地址。

我在.htaccess中添加了以下/var/www文件:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(tomcat)
RewriteRule ^/tomcat/(.*)$ http://dev2.test.com:8080/$1 [P,QSA,L]

但我在/var/log/apache2/error.log

中收到此错误
[Tue Oct 09 15:23:06 2012] [error] File does not exist:  proxy:http://dev2.test.com:8080/tomcat/

你能告诉我应该怎么做吗?

2 个答案:

答案 0 :(得分:7)

您应该使用mod_proxy代替mod_rewrite

ProxyPass /tomcat http://dev2.test.com:8000/
ProxyPassReverse /tomcat http://dev2.test.com:8000/

编辑:

此配置必须位于httpd.conf中。它可能位于VirtuaHost部分或文件的根目录。

您必须启用mod_proxy。这可以使用

完成
LoadModule  proxy_module         /usr/lib/apache2/modules/mod_proxy.so
LoadModule  proxy_http_module    /usr/lib/apache2/modules/mod_proxy_http.so

答案 1 :(得分:2)

执行您所做的操作只会向用户发送重定向到端口8080(他们无法使用)。您需要使用apache mod_proxy或其他代理服务器。

ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar