运行带有内置 httpd 守护程序和 PHP5 的 OpenBSD 4.4-stable,它已从 Ubuntu 8.04 服务器盒中移出。由于运动 phpMyAdmin 似乎经常(有时一直,比如登录)产生以下错误:
Bad Request
Your browser sent a request that this server could not understand.
Reason: You're speaking plain HTTP to an SSL-enabled server port.
Instead use the HTTPS scheme to access this URL, please.
phpMyAdmin 的地址位于 https:// URL 下,当发生此错误时,phpMyAdmin 正在尝试使用http://domain.com:443/,这显然不起作用。
我还有一个 mod_rewrite 规则来始终强制使用 HTTPS,但由于浏览器强制使用 443 端口,因此它永远不会被触发。
任何想法如何解决这个问题?
[编辑]
这是我的虚拟主机指令,因为这些指令被要求:
<VirtualHost *:80>
DocumentRoot /var/www/htdocs
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/htdocs
ErrorLog logs/error_log
TransferLog logs/access_log
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
</VirtualHost>
[编辑 2]
我关闭了重写规则,一切都像一个魅力:/不知道该怎么做,因为相同的重写规则在其他地方也有效。
在我的 PHPMyAdmin 设置中,我有一个 apache 配置,如下所示:
请注意它是如何在端口 80 和端口 443 上设置的。
在 http(端口 80)的 webroot 中,我只有一个 .htaccess 文件,如下所示:
将其全部重定向到 SSL。
所有 PHPMyAdmin 文件都位于 SSL 目录中。
我建议将您的虚拟主机设置为在端口 80 和端口 443 上提供服务。PHPMyAdmin 本身只是一个 php 脚本,它不会强制使用任何端口。这完全取决于您的网络服务器/虚拟主机的配置方式。
由于浏览器通常不会从端口 80 重定向到端口 443,因此可能是从 phpmyadmin 返回的第一个页面导致了更改。看看你的 phpmyadmin 配置,看看有什么不同:
访问 phpMyAdmin 时是否强制使用 https。
根据文档,默认情况下它是打开的,但由于你有 mod_rewrite 工作,可能会有“断开连接?”
似乎现在每个人都在为 Microsoft IE 提供一个条款,例如:
否则, ...
是否有任何机会使用 OpenBSD Apache 2.0.x 软件包对您有所帮助?
看来您的 Ubuntu 配置将使用 Apache 2.0,并且您已将系统(和配置)移动到使用 Apache 1.3.x 的默认 OpenBSD 配置
我认为您至少需要查看 WerkkreW 显示的 php_admin_value。
当简单的事情不起作用时,我们总是可以增加LogLevel数据并从那里查看结果。它很吵,但总是一种选择。
在Apache 配置中启用 SSLOptions StdEnvVars