Apache重写,同时充当反向代理

时间:2019-02-07 01:48:15

标签: apache tomcat mod-rewrite url-rewriting reverse-proxy

  • 我有example.com:8080/second在Apache Tomcat上运行。
  • 我将Apache2作为反向代理,将网页作为example.com 端口80
  • 很多代码都指向“第二”目录,但是 因为Apache充当了反向代理 example.com:8080/second无法看到“第二”目录 浏览器。

我想使用apache重写将进入第二个文件夹的所有内容重定向到站点的根目录或/。但是我去http://example.com/second/css/style.css时并不会拉起http://example.com/css/style.css

我尝试了以下操作: Apache Reverse Proxy ReWrite 但是当我在conf文件中将ProxyHTMLEnable On放在时,apache无法启动。

这就是我现在正在尝试的。 Apache确实启动了,但是我没有得到想要的重定向效果:

    <VirtualHost *:80>
        ServerName example.com
        ServerAdmin admin@example.com

        SetEnvIf Request_URI ".(jpg|jpeg|png|swf|css|gif|dat|ico|js)$" dontlog

        #SetEnvIf Request_URI "/cron/" dontlog
        LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" varnishcombined

        RewriteEngine On
        RewriteRule ^second/(.*)$ /$1 [R=301,NC,L]
       # ProxyRequests Off
       # <Proxy *>
       #   Order deny,allow
       #   Allow from all
       # </Proxy>
        ProxyPass / http://127.0.0.1:8080/second/
        ProxyPassReverse / http://127.0.0.1:8080/second/
        <Location />
          Order allow,deny
          Allow from all
        </Location>
   </VirtualHost>

1 个答案:

答案 0 :(得分:0)

请尝试在conf文件中使用以下设置,因为我可以成功使用0.0.0.0。

ProxyPreserveHost On
ProxyPass / http://0.0.0.0:8080/second/
ProxyPassReverse / http://0.0.0.0:8080/second/