Apache从DMZ重定向到内部网络

时间:2015-02-24 12:21:28

标签: apache mod-rewrite mod-proxy

我有一个域test1.xxxxxx.com,test2.xxxxxx.com,test3.xxxxxx.com等等,指向我的DMZ IP地址。

在我的DMZ上,我有一个apache web服务器。

apache Web服务器需要重定向

test1.xxxxxx.com to test1.xxxxxx.com (192.168.1.1) on the internal network
test2.xxxxxx.com to test2.xxxxxx.com (192.168.1.2) on the internal network
test3.xxxxxx.com to test3.xxxxxx.com (192.168.1.3) on the internal network

test1.xxxxxx.com到192.168.1.1等的映射在hosts文件中指定

我有

<VirtualHost *:80>
RewriteEngine on

RewriteCond %{HTTP_HOST} ^(test1.xxxxxx.com)$
RewriteRule ^(.*)$ http://test1.xxxxxx.com [R,L]

RewriteCond %{HTTP_HOST} ^(test2.xxxxxx.com)$
RewriteRule ^(.*)$ http://test2.xxxxxx.com [R,L]

RewriteCond %{HTTP_HOST} ^(test3.xxxxxx.com)$
RewriteRule ^(.*)$ http://test3.xxxxxx.com [R,L]
</VirtualHost>

当我尝试在浏览器中点击http://test1.xxxxxx.com时,我得到此网页有一个重定向循环

如果我有

<VirtualHost *:80>
RewriteEngine on

RewriteCond %{HTTP_HOST} ^(test1.xxxxxx.com)$
RewriteRule ^(.*)$ http://test2.xxxxxx.com [R,L]

</VirtualHost>

然后重写工作。

类似的东西曾经工作,但我改变了我的服务器,上面的工作不起作用。我需要调整什么才能使其发挥作用。

提前致谢

2 个答案:

答案 0 :(得分:0)

好像你使用了相同域名的2倍。如果test1.xxxxxx.com重定向到test1.xxxxxx.com,它仍将解析为该dmz地址(它是同一个域!)并循环直到浏览器决定它足够:)

在你的工作中,#34;工作&#34;,你在test1.xxxxxx.com和test2.xxxxxx.com两行都有不同的网址,它们解析为不同的ip。

答案 1 :(得分:0)

使用

解决
<VirtualHost *:80>
    RewriteEngine on

    RewriteCond %{HTTP_HOST}   ^test1\.xxxxxx\.com [NC]
    RewriteCond %{HTTP_HOST}   !^$
    RewriteRule ^/?(.*)         http://test1.xxxxxx.com/$1 [L,R,NE,P]
</VirtualHost>

现在按照我的要求运作