phpMyAdmin 在 CloudFlare 灵活 SSL 上使用端口 80

dwi*_*390 5 ubuntu phpmyadmin

我目前在一台专用服务器上有 3 个网站(在一个 IP 地址上运行)。

对于其中一个站点,服务器上的 SSL 处于活动状态,phpMyAdmin 运行良好。登录后,您将被重定向到正确的位置(https://example.tld/phpmyadmin例如)

但是,对于其他两个站点,我没有它们的 SSL 证书,因此我使用的是 CloudFlare 的灵活通用 SSL。我的问题是登录到 phpMyAdmin(通过访问https://example.tld/phpMyAdmin)phpMyAdmin 重定向到端口 80,例如https://example.tld:80/phpMyAdmin,由于 SSL 不再安全(因为 Apache 开始提供未加密的数据),浏览器显示一条错误消息,指出连接不安全。

关于如何阻止 phpMyAdmin 重定向到端口 80 的任何想法?

小智 6

我找到了一个对我有用的解决方案:D

在 phpmyadmin/libraries/Config.class.php 中找到以下代码:

 if (! empty($url['port'])
                && (($url['scheme'] == 'http' && $url['port'] != 80)
                || ($url['scheme'] == 'https' && $url['port'] != 80)
                || ($url['scheme'] == 'https' && $url['port'] != 443)

            )) {
                $pma_absolute_uri .= ':' . $url['port'];
            }
Run Code Online (Sandbox Code Playgroud)

并删除最后一个 OR 条件:

 if (! empty($url['port'])
                && (($url['scheme'] == 'http' && $url['port'] != 80)
                || ($url['scheme'] == 'https' && $url['port'] != 80)
                //|| ($url['scheme'] == 'https' && $url['port'] != 443)

            )) {
                $pma_absolute_uri .= ':' . $url['port'];
            }
Run Code Online (Sandbox Code Playgroud)

  • 这感觉像是一个黑客,但可以确认它仍然适用于最新的 phpmyadmin 版本。 (2认同)