Переменная $ _SERVER ["PHP_SELF"] на моем хостинге неожиданно начала возвращать полный протокол и хост для учетных записей с поддержкой SSL, и я не могу понять, почему. Я погуглил высоко и низко. Я ничего не менял на сервере.
Я установил фиктивный файл для вывода значения PHP_SELF. На моей локальной машине (без SSL) он отображается как /phpself.php (это поведение, которое я ожидаю). На учетных записях с поддержкой SSL он возвращается как https://www.example.com/phpself.php. Это не в документе.
По словам хостинговой компании, когда они переименовали файл .htaccess, переменная вернула «правильное» имя файла (без хоста).
Кто-нибудь может объяснить, что происходит? Для меня это не имеет никакого смысла, так как я думал, что PHP_SELF - это основная переменная PHP, которая не может быть затронута перезаписью URL или чем-то подобным.
ПереписатьEngine на
Options -Indexes
RewriteCond %{HTTP_HOST} ^example\.com\.au$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com\.au$
RewriteRule ^(.*)$ "https\:\/\/www\.example\.com\.au\/$1" [R=301,L]
Файл .htaccess был создан cPanel после создания перенаправления, а не мной вручную. И снова это поведение началось внезапно, совершенно неожиданно ... не в результате того, что я изменил файл .htaccess.