在Apache 2.4/Centos 7中将IP地址转发到适当的域

在Apache 2.4/Centos 7中将IP地址转发到适当的域,apache,centos7,httpd.conf,Apache,Centos7,Httpd.conf,我想将服务器公共IP地址的任何请求转发到域。我在httpd.conf文件顶部附近有以下代码。第二行中的数字是服务器的实际IP地址 但是,当我在浏览器中访问IP地址时(本例中为1.2.3.4),网站会显示IP而没有https。为什么下面的代码不使用https将请求转发到域 如果用户访问http://或我希望他们被重定向到 如果它没有这样做,那么您是在错误的上下文中配置它。最简单的方法是使用servername 1.2.3.4的virtualhost和一个简单的重定向/https://www.exa

我想将服务器公共IP地址的任何请求转发到域。我在
httpd.conf
文件顶部附近有以下代码。第二行中的数字是服务器的实际IP地址

但是,当我在浏览器中访问IP地址时(本例中为1.2.3.4),网站会显示IP而没有https。为什么下面的代码不使用https将请求转发到域

如果用户访问http://或我希望他们被重定向到


如果它没有这样做,那么您是在错误的上下文中配置它。最简单的方法是使用servername 1.2.3.4的virtualhost和一个简单的
重定向/https://www.example.com/
,对于那些请求1.2.3.4的人,其余的。。第一个定义的端口80 virtualhost具有相同的重定向功能。其基本原理是apache在请求到达时查看主机标头。如果在任何已定义的virtualhost中servername指令不匹配,则使用第一个virtualhost。我的建议是,如果可能的话,试着通过不同的虚拟主机来解决你的流量问题,而不是“一网打尽”的mod rewrite菜谱,这在大多数情况下都会以痛苦告终。谢谢,我把它移到了Vhost,效果很好。我使用的是Let's Encrypt for TLS证书,我猜在Centos上,当它配置Apache时,它从sites enabled目录加载*:80 vhost,但从sites available目录加载*:443。
# Rewrite engine to move the raw IP address to URL
RewriteEngine On
RewriteCond %{HTTP_HOST} ^1\.2\.3\.4$
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]