从 https-URL 请求重定向到 http-服务器 IP 不起作用

从 https-URL 请求重定向到 http-服务器 IP 不起作用

在第二次调用我的 Apache 2.4 服务器 config-vhost 文件时,我有:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName 51.89.98.21
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^http://51.89.98.21$1 [NC]
    RewriteRule ^(.*)$ http://51.89.98.21/ [R=permanent,END,QSA]            
</VirtualHost>

第三个 config-vhost 是这个(部分):

<VirtualHost *:443>
   ServerAdmin  [email protected]
   ServerName   www.developmentscout.com
   ServerAlias  developmentscout.com   
   UseCanonicalName Off
   DocumentRoot "/var/www/vhosts/developmentscout.com/htdocs"
   
RewriteEngine On

RewriteCond %{REQUEST_URI} ^\.well\-known [NC,OR]
RewriteCond %{HTTP_HOST} ^developmentscout.com$ [NC]
RewriteRule ^ https://www.developmentscout.com%{REQUEST_URI} [END,QSA,R=permanent]

SSLEngine on
SSLCertificateKeyFile /etc/letsencrypt/live/developmentscout.com-0002/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/developmentscout.com-0002/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/developmentscout.com-0002/chain.pem
...

链接来自https://51.89.98.21/industrie/automatisierung/ipc/11315-edge-computing 应重定向至http://51.89.98.21但我却重定向到:http://51.89.98.21/industrie/automatisierung/ipc/11315-edge-computing,它向我展示了“真实”页面的内容。

第二个虚拟主机永远不会到达,因为在日志中我有这样的内容:

[2023 年 10 月 24 日星期二 18:44:23.156932] [ssl:debug] [pid 8958:tid 140379014039296] ssl_engine_kernel.c(383):[客户端 98.58.102.21:64004] AH02034:针对子级 22272(服务器www.developmentscout.com:443), 引荐来源:https://51.89.98.21/industrie/automatisierung/ipc/11315-edge-computing

显然https请求转到了错误的URL,调用了SSL证书,这是错误的,然后使用http连接并显示内容。

我尝试使用 Letsencrypt 创建 SSL 证书,但对于 IP 来说这是不可能的。所以任何关于如何解决这个问题的建议都很好。

更新:与此同时,我为 51.89.98.21 创建了一个自签名证书。(默认之后的第二个)虚拟主机是:

    <VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName 51.89.98.21
        SSLEngine on
        SSLCertificateKeyFile /etc/ca-certificates/key.pem
        SSLCertificateFile /etc/ca-certificates/cert.pem
        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^51.89.98.21/$ [NC]
        RewriteRule ^ https://51.89.98.21/ [END,QSA,R=permanent]
        DocumentRoot /var/www/server3           
    </VirtualHost>

当我调用此 URL 时:https://51.89.98.21/branche/automobil/11819-e-auto-laden-ladestecker-ladekabel 我收到 404 未找到信息。

答案1

我告诉我,

RewriteCond %{HTTP_HOST} ^51.89.98.21/$ [NC]

永远不会成立,因为 %{HTTP_HOST} 仅包含域名(或在本例中为 IP),而没有尾随斜杠。

所以修改应该是:

重写条件 %{REQUEST_URI} !^/$

相关内容