2012-01-29 60 views
1

我已经遵循了我可以在Google上找到的每个指南,但仍无法解决此问题!ubuntu apache2 mod_proxy替换内部网址的

我已经设法建立mod_proxy撤回内部网站,但网站添加内部链接菜单项不会为外部用户工作,所以我试图将他们从.int域重写到.com域。

我有以下虚拟主机。

<VirtualHost *:80> 
    ServerName shop.itmanx.com 

    ProxyRequests Off 
    ProxyPreserveHost On 
    #ProxyHTMLInterp On  #used to be ProxyHTMLEnable 
    #ProxyHTMLExtended On #will parse all scripts and css files as well [slow if on] 

    ProxyPass/http://shop.itmanx.int/ 
    ProxyPassReverse/http://shop.itmanx.int/ 
    #ProxyHTMLURLMap//test/ 
    ProxyHTMLURLMap (.*)itmanx.int(.*) $1itmanx.com$2 [Rin] 

    <Location /> 
     Order allow,deny 
     Allow from all 
    </Location> 
</VirtualHost> 

我已经确定的组件加载

[Sun Jan 29 14:59:46 2012] [warn] module proxy_module is already loaded, skipping 
[Sun Jan 29 14:59:46 2012] [warn] module proxy_http_module is already loaded, skipping 
[Sun Jan 29 14:59:46 2012] [warn] module proxy_html_module is already loaded, skipping 

但没有链接被改变。那么我错过了什么?

服务器是Ubuntu服务器11.10

回答

1

好哇!由于在Hudson的家伙谁引述如下:

因为哈德森已经压缩它的输出,可以正常使用的 代理HTML过滤器来修改网址:`

SetOutputFilter代理HTML

相反,你可以使用以下命令:

SetOutputFilter膨胀;代理HTML; DEFLATE;

因为这一行的,它现在的工作

<VirtualHost *:80> 
    ServerName shop.itmanx.com 
    SetEnv proxy-nokeepalive 1 

    ProxyPass/http://shop.itmanx.int/ 
    ProxyPassReverse/http://shop.itmanx.int/ 
    ProxyRequests Off 

    SetOutputFilter INFLATE;proxy-html;DEFLATE; 
    ProxyHTMLURLMap (.*)itmanx.int(.*) $1itmanx.com$2 [R] 
</VirtualHost>