Возможно иметь функцию для абсолютного http(s)
пути, лучше всего проверить, отвечает ли сервер как HTTP
или HTTPS
и переписать код php в соответствии с новым путем ...
check.php
<?php
// Checking for HTTP or HTTPS
function check_protocol() {
$isSecure = false;
if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') {
$isSecure = true;
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && strtolower($_SERVER['HTTP_X_FORWARDED_SSL']) == 'on') {
$isSecure = true;
}
return $isSecure;
}
$protocol = check_protocol() ? 'https://' : 'http://';
$host = $protocol . $_SERVER['HTTP_HOST'];
?>
Использование простое:
<?php
include("check.php");
echo $host;
// it prints http://www.example.com or https://www.example.com
?>
или использование абсолютного пути благодаря $ _ SERVER ['DOCUMENT_ROOT'] :
<?php
include($_SERVER['DOCUMENT_ROOT'] . "/php/check.php");
echo $host;
// it prints http://www.example.com or https://www.example.com
?>
В дополнение к этому может быть полезным перенаправление с использованием .htaccess
, если сервер размещен на Apache
сервере ...
Я нашел полезным это правило для моего .htaccess
:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Это правило может не работать на другой конфигурации сервера ... прочитайте этот поток для получения дополнительной информации о самой различной конфигурации сервера ...
Я надеюсь, что этопомогает.