【发布时间】:2012-09-29 20:32:42
【问题描述】:
我的服务器上的 8080 端口上有一些 Web 应用程序可用。
由于我的一些用户由于他们的防火墙而无法访问端口 8080,我想在我的 apache 服务器上设置一个重定向。我想要以下网址
http://dev2.test.com/tomcat/somewebapp/restofthepath
显示可访问的内容
http://dev2.test.com:8080/somewebapp/restofthepath
当然我不希望用户输入第一个地址来查看第二个地址。
我在/var/www 中添加了以下.htaccess 文件:
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/
你能告诉我我该怎么做吗?
【问题讨论】:
-
只需从重写规则中删除 P 标志。
-
@alk 我收到此响应“在此服务器上找不到请求的 URL /tomcat/。”
-
您需要在
RewriteRule ^/tomcat/(.*)$中使用$来做什么? -
它似乎不需要,但删除它不会改变任何事情。经过多次测试后,我的印象是第一部分或 RewriteRule 与我的 URL 不匹配。甚至
^/tomcat/似乎也不匹配。 -
不确定,但你试过了吗:
RewriteRule ^/tomcat(.*) http://dev2.test.com:8080$1 [QSA,L]
标签: regex apache .htaccess mod-rewrite redirect