@rammsteinik

Почему через инклуд $_SERVER["REMOTE_ADDR"] выводит ip сервера?

В инклуде $_SERVER["REMOTE_ADDR"] выводит ip сервера, грешу на htaccess, так как настроил динамические поддомены. С поддомена захожу - такой баг. Напрямую всё нормально.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(.*)\.test\.ru$
RewriteCond %{REQUEST_URI} ^/show/(.*)
RewriteRule ^(.*)$ http://test.ru/show.php?id=%1 [L,P]
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
@rammsteinik Автор вопроса
Решил так. Костыль, но всё же работает.

function get_client_ip() {
    $ipaddress = '';
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $ipaddress = $_SERVER['REMOTE_ADDR'];
    }

    return $ipaddress;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
landergate
@landergate
IT-шный jack-of-all-trades
PHP-скрипт публикуется через apache2+nginx?
Если да, то PHP получает адрес размещения nginx. Можно настроить трансляцию IP-адреса через apache-модуль 'mod_remoteip'.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы