代码之家  ›  专栏  ›  技术社区  ›  Mrgr8m4

如何使用Apache httpd重定向两个不同的端口?

  •  2
  • Mrgr8m4  · 技术社区  · 7 年前

    我将SSL设置到我的web应用程序。此应用程序的标准端口为8080,SSL端口为8443。我对Apache httpd配置有问题。我想重定向下面列出的所有URL:

    http://1.2.3.4:8080
    https://1.2.3.4:8080
    http://1.2.3.4:8443
    

    到此url:

    https://1.2.3.4:8443
    

    我换了httpd。确认:

    Listen 1.2.3.4:8080
    
    <VirtualHost *:8080>
        ServerName 1.2.3.4
        Redirect "/" "https://1.2.3.4:8443"
    </VirtualHost>
    

    它适用于上面列出的第一个url,但不适用于其他url。我尝试了不同的配置,但都不起作用。有人能帮我解决这个问题吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   MrWhite    7 年前
    https://1.2.3.4:8080
    http://1.2.3.4:8443
    

    在您的配置中,HTTP是 只有 只有

    参考:
    https://serverfault.com/questions/359461/apache-answer-both-http-and-https-on-the-same-port

        2
  •  0
  •   Giri    7 年前

    在httpd中配置mod_rewrite。conf来实现这样的重定向

    例如:

    LoadModule rewrite_module  modules/mod_rewrite.so
    RewriteEngine on
    <VirtualHost 1.2.3.4:8080>
      <IfModule mod_rewrite.c>
        RewriteCond %{SERVER_PORT} !^8443$
        RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [L,R]
      </IfModule>
    </VirtualHost>
    

    LoadModule rewrite_module  modules/mod_rewrite.so
    RewriteEngine on
    RewriteCond %{SERVER_PORT} =8080
    RewriteRule ^(.*) https://%{HTTP_HOST}:8443/$1 [L,R]