Почему не работает функция LocalRedirect для внутреннего перенаправления?

При проверке системы возникает ошибка "Внутреннее перенаправление (функция LocalRedirect) Ошибка! Не работает". Я попытался изменить файл dbconn.php, добавив строку <code>$_SERVER["SERVER_PORT"] = "443";</code>. На данный момент сайт подключен к Cloudflare. В логах я получил следующее:

<pre><code>2024-Sep-12 09:47:56 Внутреннее перенаправление (функция LocalRedirect) (check_localredirect): Fail
Connection to ssl://site.ru:443   Success
== Request ==
GET /bitrix/admin/site_checker.php?test_type=redirect_test&amp;unique_id=2b258d0e8bd8e4a5220e6fb76e639c79&amp;SERVER_PORT=443&amp;HTTPS=On&amp;FCGI_ROLE=&amp;HTTP_HOST=site.ru&amp;SERVER_PROTOCOL=HTTP%2F1.0 HTTP/1.1
Host: site.ru

== Response ==
HTTP/1.1 302 Found
Date: Thu, 12 Sep 2024 06:47:56 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
location: https://site.ru?redirect_test=Y&amp;done=Y&amp;unique_id=2b258d0e8bd8e4a5220e6fb76e639c79
request-uri: https://site.ru?redirect_test=Y&amp;done=Y&amp;unique_id=2b258d0e8bd8e4a5220e6fb76e639c79
content-location: https://site.ru?redirect_test=Y&amp;done=Y&amp;unique_id=2b258d0e8bd8e4a5220e6fb76e639c79
cf-cache-status: DYNAMIC
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=a7M5zCO8wfLTDMwzkbCRZSVXAHjtyyYDaDbeFREzHMMXJcas6lVxs%2Fhh%2FzqYCHJ7T3t4CJ5phnxJs9Ur6R7d%2FQ5O7w%2FxZZq0aKZ4xvFafCN2%2FpPqRoOSzm3ja6keKAlPJcxz75e5wftHqkA%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 8c1df2ef8e15bf22-WAW
alt-svc: h3=":443"; ma=86400

== Body ==

==========

Ошибка! Не работает</code></pre>

Как можно решить эту проблему?
  • 12 сентября 2024 г. 9:33
Ответы на вопрос 1
Проблема с функцией `LocalRedirect` в вашем случае может быть связана с несколькими факторами, особенно с настройками вашего веб-сервера и конфигурацией Cloudflare. Вот несколько шагов, которые могут помочь вам диагностировать и устранить проблему:

1. **Проверьте настройки Cloudflare**:
   - Убедитесь, что SSL-сертификат правильно настроен в Cloudflare. Рекомендуется использовать режим "Full" (полный) или "Full (strict)".
   - Проверьте, установлен ли режим "Always use HTTPS" в настройках Cloudflare. Если этот режим активен, он может конфликтовать с вашими внутренними перенаправлениями.

2. **Настройки сервера**:
   - Убедитесь, что ваш веб-сервер (например, Apache или Nginx) правильно обрабатывает запросы в HTTPS. Проверьте конфигурационные файлы на наличие ошибок.
   - Убедитесь, что серверный порт 443 открыт и доступен.

3. **Параметры на сайте**:
   - Проверьте настройки сайта (например, в админке вашего CMS) на предмет корректного указания URL-адресов (вы используете HTTPS?).
   - Убедитесь, что в конфигурационных файлах вашего приложения (например, `dbconn.php`) нет конфликтующих параметров, которые заставляют его работать в неправильной среде.

4. **Кеширование**:
   - Возможно, кэширование (как на уровне сервера, так и на уровне Cloudflare) мешает корректной работе перенаправлений. Попробуйте очистить кэш как в вашем приложении, так и в Cloudflare.

5. **Логи**:
   - Изучите логи сервера для получения более детальной информации об ошибках. Возможно, в них будут подсказки о том, что идёт не так при выполнении `LocalRedirect`.

6. **Отладка запроса**:
   - Попробуйте сделать тестовый запрос к вашему сайту без использования Cloudflare (например, через `curl`), чтобы проверить, работает ли перенаправление без промежуточного прокси.

7. **Исправление `$_SERVER`**:
   - Изменение `$_SERVER["SERVER_PORT"]` не всегда эффективно, так как это значение может быть перезаписано в других местах. Рассмотрите возможность изменения конфигурации веб-сервера или использование других переменных среды.

8. **Обращение в техподдержку**:
   - Если ничего не помогло, рассмотрите возможность обращения в техническую поддержку вашего хостинг-провайдера или в службу поддержки Cloudflare для получения дополнительной помощи.

Если вы выполните все вышеописанные шаги, вероятно, это поможет вам выявить и устранить проблему с `LocalRedirect`.
Похожие вопросы