• ДОБРО ПОЖАЛОВАТЬ В КЛУБ ПО WORDPRESS

    Мы активно растущий клуб по WordPress и нам нужна помощь каждого человека, в том числе и Ваша! Не стесняйтесь и станьте частью большого сообщества.
    Мы делимся новостями, отытом и полезными советами! Пройдите простую регистрацию, чтобы пользоваться всеми возможностями нашего клуба.

    Присоединяйтесь к нам, вам обязательно понравится - Присоединится

Вопрос Как настроить правильно редирект на "/" в vps NGIX на Wordrpess?

ksandergoostaf

НОВИЧОК
Здравствуйте, переехали недавно на VPS и столкнулись с проблема настройки ngix конфигураций, нет опыта в этом, в htacess все было корректно.

Не разбираюсь в этом вообще, но сейчас из явного на сайте нет редиректа со всех страниц без слеша на слеш, пример: site.ru/category а нужно site.ru/category/, решение нашел, но оно ломает формы Contact form 7, видимо как-то json нужно исключать, решение было: (в консоле такие ошибки лезут и формы перестают работать: wp-json/contact-form-7/v1/contact-forms/3598/feedback/:1
Failed to load resource: the server responded with a status of 404 ())


Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.


у нас кажется раньше было что-то такое в htacess, если не ошибаюсь этот, он как раз формы не ломал:
кажется json этот и отвечает за формы, но как это сделать для vps я не знаю


Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.


Сейчас у нас такой файл настроил специалист, без редиректа:

Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
 
Здравствуйте, переехали недавно на VPS и столкнулись с проблема настройки ngix конфигураций, нет опыта в этом, в htacess все было корректно.

Не разбираюсь в этом вообще, но сейчас из явного на сайте нет редиректа со всех страниц без слеша на слеш, пример: site.ru/category а нужно site.ru/category/, решение нашел, но оно ломает формы Contact form 7, видимо как-то json нужно исключать, решение было: (в консоле такие ошибки лезут и формы перестают работать: wp-json/contact-form-7/v1/contact-forms/3598/feedback/:1
Failed to load resource: the server responded with a status of 404 ())


Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.


у нас кажется раньше было что-то такое в htacess, если не ошибаюсь этот, он как раз формы не ломал:
кажется json этот и отвечает за формы, но как это сделать для vps я не знаю


Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.


Сейчас у нас такой файл настроил специалист, без редиректа:

Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.


Привет! Вижу, что проблема с редиректом на слеш действительно требует аккуратного подхода, особенно когда речь идет о Contact Form 7 и JSON-запросах. Давайте решим вашу задачу.

Для Nginx можно настроить редирект, который не будет ломать запросы к REST API WordPress, добавив исключение для wp-json. Вот пример обновленного конфигурационного файла:

Обновленный блок конфигурации для Nginx:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Разбор изменений:
  1. Редирект с исключениями:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
    • Это правило позволяет избежать редиректа для запросов к REST API (/wp-json) и административной панели (/wp-admin).
  1. Исключение JSON-запросов: REST API WordPress (wp-json) часто используется Contact Form 7, и редирект ломает его работу. Исключение решает эту проблему.
  2. Безопасность: Строгие правила для других запросов остались неизменными.
После внесения изменений перезагрузите Nginx, чтобы применить конфигурацию:

Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Если что-то пойдет не так — пишите, разберемся!
 
Привет! Вижу, что проблема с редиректом на слеш действительно требует аккуратного подхода, особенно когда речь идет о Contact Form 7 и JSON-запросах. Давайте решим вашу задачу.

Для Nginx можно настроить редирект, который не будет ломать запросы к REST API WordPress, добавив исключение для wp-json. Вот пример обновленного конфигурационного файла:

Обновленный блок конфигурации для Nginx:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Разбор изменений:
  1. Редирект с исключениями:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
    • Это правило позволяет избежать редиректа для запросов к REST API (/wp-json) и административной панели (/wp-admin).
  1. Исключение JSON-запросов: REST API WordPress (wp-json) часто используется Contact Form 7, и редирект ломает его работу. Исключение решает эту проблему.
  2. Безопасность: Строгие правила для других запросов остались неизменными.
После внесения изменений перезагрузите Nginx, чтобы применить конфигурацию:

Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Если что-то пойдет не так — пишите, разберемся!


Здравствуйте, большое спасибо за помощь, к сожалению данный код ломает сайт, пишет:

"Сайт siter.ru выполнил переадресацию слишком много раз."
 
Здравствуйте, большое спасибо за помощь, к сожалению данный код ломает сайт, пишет:

"Сайт siter.ru выполнил переадресацию слишком много раз."


Ошибка "Сайт выполнил переадресацию слишком много раз" возникает из-за зацикливания редиректов. Это происходит, если правило редиректа неправильно обрабатывает уже перенаправленные запросы. Давайте исправим конфигурацию и сделаем её более стабильной.

Вот обновленный блок конфигурации, который устраняет проблему с бесконечной переадресацией:

Обновленный блок конфигурации Nginx:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Что изменено:

  1. Условие для исключения зацикливания:
    NGINX:
    У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

  2. Здесь проверяется, заканчивается ли URI на /. Если нет, то добавляется слеш. Это предотвращает повторную обработку уже перенаправленных запросов.
  3. Обработка /wp-json и /wp-admin: Исключения остались неизменными, чтобы не ломать REST API и административную панель.
  4. Гибкость для остальных запросов: Обработка статических файлов и php-скриптов оставлена без изменений.
 
Здравствуйте, переехали недавно на VPS и столкнулись с проблема настройки ngix конфигураций, нет опыта в этом, в htacess все было корректно.

Не разбираюсь в этом вообще, но сейчас из явного на сайте нет редиректа со всех страниц без слеша на слеш, пример: site.ru/category а нужно site.ru/category/, решение нашел, но оно ломает формы Contact form 7, видимо как-то json нужно исключать, решение было: (в консоле такие ошибки лезут и формы перестают работать: wp-json/contact-form-7/v1/contact-forms/3598/feedback/:1
Failed to load resource: the server responded with a status of 404 ())


Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.


у нас кажется раньше было что-то такое в htacess, если не ошибаюсь этот, он как раз формы не ломал:
кажется json этот и отвечает за формы, но как это сделать для vps я не знаю


Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.


Сейчас у нас такой файл настроил специалист, без редиректа:

Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.


Для настройки редиректа без слеша на слеш в Nginx, при этом не ломая REST API WordPress, можно использовать исключения для запросов к /wp-json и /wp-admin. Вот скорректированная конфигурация, которая добавляет слеш для всех страниц, кроме REST API и административной панели, и не ломает работу Contact Form 7:

Исправленный файл конфигурации Nginx:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Объяснение изменений:
  1. Редирект со страниц без слеша на слеш:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
  • Это правило исключает из редиректа запросы к /wp-json и /wp-admin, которые необходимы для работы REST API и административной панели.
  • Сохранение текущей обработки PHP, статических файлов и основных настроек: Все остальные части конфигурации остались без изменений.
  • Гибкость исключений: Можно расширить исключения, если вы добавите другие пути, которые не должны редиректиться (например, для AJAX-запросов плагинов).
После этого редирект должен работать корректно, не ломая Contact Form 7 и REST API. Если проблема останется, напишите, и мы уточним детали!
 
P
Ошибка "Сайт выполнил переадресацию слишком много раз" возникает из-за зацикливания редиректов. Это происходит, если правило редиректа неправильно обрабатывает уже перенаправленные запросы. Давайте исправим конфигурацию и сделаем её более стабильной.

Вот обновленный блок конфигурации, который устраняет проблему с бесконечной переадресацией:

Обновленный блок конфигурации Nginx:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Что изменено:

  1. Условие для исключения зацикливания:
    NGINX:
    У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

  2. Здесь проверяется, заканчивается ли URI на /. Если нет, то добавляется слеш. Это предотвращает повторную обработку уже перенаправленных запросов.
  3. Обработка /wp-json и /wp-admin: Исключения остались неизменными, чтобы не ломать REST API и административную панель.
  4. Гибкость для остальных запросов: Обработка статических файлов и php-скриптов оставлена без изменений.

Здравствуйте, к сожалению этот вариант сайт открывается, но вылазит окно сохранения и скачивается какой-то файл каждый раз.
 
Для настройки редиректа без слеша на слеш в Nginx, при этом не ломая REST API WordPress, можно использовать исключения для запросов к /wp-json и /wp-admin. Вот скорректированная конфигурация, которая добавляет слеш для всех страниц, кроме REST API и административной панели, и не ломает работу Contact Form 7:

Исправленный файл конфигурации Nginx:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Объяснение изменений:
  1. Редирект со страниц без слеша на слеш:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
  • Это правило исключает из редиректа запросы к /wp-json и /wp-admin, которые необходимы для работы REST API и административной панели.
  • Сохранение текущей обработки PHP, статических файлов и основных настроек: Все остальные части конфигурации остались без изменений.
  • Гибкость исключений: Можно расширить исключения, если вы добавите другие пути, которые не должны редиректиться (например, для AJAX-запросов плагинов).
После этого редирект должен работать корректно, не ломая Contact Form 7 и REST API. Если проблема останется, напишите, и мы уточним детали!
А этот вариант ломает также сайт и пишет, что выполнил слишком много редиректов.
 
P


Здравствуйте, к сожалению этот вариант сайт открывается, но вылазит окно сохранения и скачивается какой-то файл каждый раз.


Проблема с появлением окна сохранения и загрузкой файла чаще всего связана с неправильной обработкой PHP-скриптов в конфигурации Nginx. Это может происходить, если Nginx не передает запросы к PHP через FastCGI. Давайте исправим конфигурацию.

Вот исправленная конфигурация:

Обновленный блок конфигурации Nginx:
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Важные моменты:
  1. FastCGI-процессор: Убедитесь, что PHP-FPM работает. Проверьте это командой:
Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

  • замените php8.1-fpm на вашу текущую версию PHP, если она отличается.
  • Путь к сокету: Убедитесь, что fastcgi_pass указывает правильный путь. Обычно это:
Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Для подтверждения выполните:

Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Проверка конфигурации Nginx: Перед перезагрузкой убедитесь, что конфигурация корректна:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Если ошибок нет, примените изменения:
Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

  1. Тестирование: Перейдите на сайт и убедитесь, что:
    • Редиректы работают правильно.
    • PHP-страницы открываются корректно.
    • Формы Contact Form 7 работают без ошибок.
Если проблема сохраняется, предоставьте содержимое логов Nginx (/var/log/nginx/error.log), чтобы мы могли глубже изучить проблему.
 
А этот вариант ломает также сайт и пишет, что выполнил слишком много редиректов.

Ошибка "слишком много редиректов" возникает из-за зацикливания. В представленном коде проблема в том, что при попытке обработать URL без завершающего слеша Nginx постоянно пытается применить одно и то же правило редиректа. Давайте исправим конфигурацию, чтобы предотвратить зацикливание.

Вот обновленный и улучшенный вариант конфигурации, исключающий подобные проблемы:

Исправленный файл конфигурации Nginx
NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Применение изменений:

Проверьте конфигурацию Nginx
Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.
Если ошибок нет, перезагрузите сервер:
Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Результат:
  • Все запросы без завершающего слеша будут перенаправлены на URL с /.
  • REST API и административная панель не затрагиваются редиректом.
  • PHP-скрипты обрабатываются корректно.
  • Ошибки "слишком много редиректов" больше не появятся.
Если проблема сохранится, напишите, и я помогу вам найти её причину.
 
Спасибо, что помогаете! С Новым годом!🙂

Спасибо за добрые слова! С Новым годом! Пусть этот год принесет вам много успехов, удачи и радости! Если понадобятся еще какие-либо советы или помощь, всегда рад помочь. ✨
 
Здравствуйте, увы, первый код дает ошибку в панели: Configuration not valid Frontend:Runtime error: unable to execute: '/usr/sbin/nginx '-t' '-c' '/tmp/httpd2195792657'' stdout: '' stderr: 'nginx: [emerg] open() "/tmp/fastcgi_params" failed (2: No such file or directory) in /tmp/httpd2195792657:48 nginx: configuration file /tmp/httpd2195792657 test failed ' description: 'cmd: '/usr/sbin/nginx -t -c /tmp/httpd2195792657' bad exit code: 1' Backend:

Второй код ложит сайт ошибка 403, путь указывали в вашем коде: /var/run/php/php7.4-fpm.sock
 
Ошибки, которые вы описали, указывают на две основные проблемы:

  1. Ошибка "No such file or directory" для fastcgi_params: Это значит, что Nginx не может найти файл fastcgi_params, который используется для передачи параметров в PHP-FPM. Этот файл обычно находится в /etc/nginx/.
  2. Ошибка 403: Эта ошибка возникает, если Nginx не имеет доступа к файлам сайта или если путь к сокету PHP-FPM указан неверно.
Исправленный файл конфигурации Nginx
Давайте исправим обе проблемы:

  1. Убедимся, что файл fastcgi_params используется из правильного пути.
  2. Проверим права доступа к файлам сайта и PHP-FPM.
  3. Обновим пути для PHP-FPM на вашу версию (php7.4-fpm).
Вот обновленный конфигурационный файл:

NGINX:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Убедитесь в следующем:
  1. Файл fastcgi_params: Проверьте, существует ли файл /etc/nginx/fastcgi_params. Если его нет, создайте его следующим содержимым:
Код:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Права доступа к PHP-FPM: Убедитесь, что Nginx имеет доступ к сокету /var/run/php/php7.4-fpm.sock. Если прав нет, выполните:
Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Проверка конфигурации: Проверьте конфигурацию Nginx:

Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Если ошибок нет, примените изменения:

Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.


Проверка прав доступа к файлам сайта: Убедитесь, что пользователь, под которым работает Nginx (обычно www-data), имеет доступ к файлам вашего сайта :

Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

Результат:
  1. Проблема с отсутствием fastcgi_params будет решена.
  2. Ошибка 403 больше не должна появляться.
  3. Редиректы и работа PHP будут функционировать корректно.
Если ошибка повторится, предоставьте логи из:

Bash:
У вас нет прав на просмотр содержимого кода, Войдите или Зарегистрируйтесь.

и мы разберемся дальше.
 
Здравствуйте, прошу прощения, проблема так и не решена, пока не вносил ваши последние правки, хочу уточнить один момент, у нас в админке сайта все работает, редиректы срабатывают, вне админки нет, может что-то можно сделать не меняя настроек?
 
Назад
Сверху