PHP_SELF 包括主机名和协议

PHP_SELF including hostname and protocol

我的主机上的 $_SERVER["PHP_SELF"] 变量突然开始返回启用 SSL 的帐户上的完整协议和主机,我终究无法弄清楚原因。我用谷歌搜索了高低。我没有更改服务器上的任何内容。

我设置了一个虚拟文件来输出 PHP_SELF 值。在我的本地计算机(无 SSL)上,它显示为 /phpself.php(这是我期望的行为)。在启用 SSL 的帐户上,它返回为 https://www.example.com/phpself.php。这不在 doco 中。

根据托管公司的说法,当他们重命名 .htaccess 文件时,变量返回 "correct" 文件名(没有主机)。

谁能解释一下这是怎么回事?对我来说毫无意义,因为我认为 PHP_SELF 是一个核心 PHP 变量,URL 重写或类似的东西无法触及。 重写引擎开启

Options -Indexes

RewriteCond %{HTTP_HOST} ^example\.com\.au$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com\.au$
RewriteRule ^(.*)$ "https\:\/\/www\.example\.com\.au\/" [R=301,L]

.htaccess 文件是在创建重定向后由 cPanel 创建的,不是我手动创建的。不过,这种行为突然开始,出乎意料……不是因为我更改了 .htaccess 文件。

该错误已在5.3.4 build 6中修复,请更新或通知您的主机提供商更新。