我将SSL设置为我的Web应用程序。此应用程序的标准端口为8080,SSL端口为8443.我遇到Apache httpd配置问题。我想重定向下面列出的所有网址:
http://1.2.3.4:8080
https://1.2.3.4:8080
http://1.2.3.4:8443
到这个网址:
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>
它适用于上面列出的第一个网址,但不适用于其他网址。我尝试了不同的配置,但它们没有用。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
https://1.2.3.4:8080 http://1.2.3.4:8443
如果在端口8080上提供HTTP并且HTTPS(SSL)在8443上,则上述URL都不可访问,以便能够触发重定向。 (?!)
在您的配置中,HTTP 仅端口8080,HTTPS仅 端口8443。
参考:
https://serverfault.com/questions/359461/apache-answer-both-http-and-https-on-the-same-port
答案 1 :(得分:0)
在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}/$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]