Я нашел это в файле header.php на сайте электронной коммерции. Это лучше сделать в файле .htaccess.
Также, что произойдет с любыми параметрами сообщения, которые попадают в оператор заголовка.
// flip between secure and non-secure pages
$uri = $_SERVER['REQUEST_URI'];
// move to secure SSL pages if required
if (substr($uri,1,12) == "registration")
{
if($_SERVER['SERVER_PORT'] != 443) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
}
}
// otherwise us regular non-SSL pages
else
{
if($_SERVER['SERVER_PORT'] == 443) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
}
}
Да, это можно сделать в файле .htaccess, например, с помощью mod_rewrite. Но зачем беспокоиться? Автор приложения, вероятно, не хотел предполагать конкретный веб-сервер или увеличивать сложность конфигурации сервера, и поэтому обрабатывал это на уровне приложения.
Я считаю, что параметры POST будут потеряны при переводе, но следует предположить, что разработчик приложения учел это.