如何使用 Apache httpd 重定向两个不同的端口?
How to redirect two different ports using Apache httpd?
我为我的 Web 应用程序设置了 SSL。此应用程序的标准端口是 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.conf改成这样:
Listen 1.2.3.4:8080
<VirtualHost *:8080>
ServerName 1.2.3.4
Redirect "/" "https://1.2.3.4:8443"
</VirtualHost>
它适用于上面列出的第一个 url,但不适用于其他 url。我尝试了不同的配置,但它们没有用。谁能帮我解决这个问题?
https://1.2.3.4:8080
http://1.2.3.4:8443
如果 HTTP 在端口 8080 上提供服务并且 HTTPS (SSL) 在端口 8443 上提供服务,那么上述两个 URL 都将无法访问以触发重定向。 (?!)
在您的配置中,HTTP 仅 端口 8080,HTTPS 仅 端口 8443。
参考:
https://serverfault.com/questions/359461/apache-answer-both-http-and-https-on-the-same-port
在您的 httpd.conf 中配置 mod_rewrite 以实现这样的重定向
例如:
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}/ [L,R]
</IfModule>
</VirtualHost>
或
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine on
RewriteCond %{SERVER_PORT} =8080
RewriteRule ^(.*) https://%{HTTP_HOST}:8443/ [L,R]
我为我的 Web 应用程序设置了 SSL。此应用程序的标准端口是 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.conf改成这样:
Listen 1.2.3.4:8080
<VirtualHost *:8080>
ServerName 1.2.3.4
Redirect "/" "https://1.2.3.4:8443"
</VirtualHost>
它适用于上面列出的第一个 url,但不适用于其他 url。我尝试了不同的配置,但它们没有用。谁能帮我解决这个问题?
https://1.2.3.4:8080 http://1.2.3.4:8443
如果 HTTP 在端口 8080 上提供服务并且 HTTPS (SSL) 在端口 8443 上提供服务,那么上述两个 URL 都将无法访问以触发重定向。 (?!)
在您的配置中,HTTP 仅 端口 8080,HTTPS 仅 端口 8443。
参考:
https://serverfault.com/questions/359461/apache-answer-both-http-and-https-on-the-same-port
在您的 httpd.conf 中配置 mod_rewrite 以实现这样的重定向
例如:
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}/ [L,R]
</IfModule>
</VirtualHost>
或
LoadModule rewrite_module modules/mod_rewrite.so
RewriteEngine on
RewriteCond %{SERVER_PORT} =8080
RewriteRule ^(.*) https://%{HTTP_HOST}:8443/ [L,R]