Как заставить условия работать?
Какая-то адовая смесь получилась.
Для начала стоит разделить условие "пользователь авторизован"/"пользователь не авторизован". Потом убедиться, что логика сравнения правильная.if ($user->is_logged) {
  if ($_SERVER['REQUEST_URI'] == '/page-1' || $_SERVER['REQUEST_URI'] == '/page-2') {
    // пользователь авторизован и запрашивает page-1 или page-2
  }
} else {
  if ($_SERVER['REQUEST_URI'] == '/' || $_SERVER['REQUEST_URI'] == '/index.php' || $_SERVER['REQUEST_URI'] == '/page-3') {
    // Пользователь не авторизован и запрашивает /, index.php или page-3
  }
}
Во втором случае вместо ! попробуй так((empty($user->is_logged))