WordPress возвращает страницу с ошибкой “Ссылка, по которой вы перешли, истекла” всякий раз, когда я добавляю новый сайт, добавляю пользователя и т.д.

Вопрос или проблема

У меня есть экземпляр WordPress Multisite (субдомены), работающий на VPS, который, похоже, работает как ожидалось, за исключением того, что всякий раз, когда я добавляю пользователя или сайт, возвращается страница “Ссылка, по которой вы прошли, истекла”, и что-то происходит.

Я использую Nginx и php7.2-fpm.

Вот файл конфигурации:

server {
        listen 80;
        server_name www.domain.name domain.name *.domain.name;

        return 301 https://www.domain.name$request_uri;
}

server {
        listen 443 ssl;
        server_name domain.name;

        ssl_certificate /etc/letsencrypt/live/domain.name/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.name/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf; # управляется Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # управляется Certbot

        return 301 https://www.domain.name$request_uri;
}

server {
        listen 443 ssl;
        server_name www.domain.name;

        root /var/www/wordpress;

    access_log /var/log/nginx/domain.name.access.log;
    error_log /var/log/nginx/domain.name.error.log;

        ssl_certificate /etc/letsencrypt/live/domain.name/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/domain.name/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf; # управляется Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # управляется Certbot

    include global/common.conf;

    # WORDPRESS : Правила переписывания, перенаправляют всё через index.php и сохраняют добавленную строку запроса
    location / {
            try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    # БЕЗОПАСНОСТЬ : Запретить все попытки доступа к PHP-файлам в директории загрузок
    location ~* /(?:uploads|files)/.*\.php$ {
            deny all;
    }
    # ТРЕБОВАНИЯ : Включить поддержку PHP
    location ~ \.php$ {
        # БЕЗОПАСНОСТЬ : Защита от нулевых эксплойтов
            try_files $uri =404;
            # ВКЛЮЧИТЬ : Включить PHP, слушать fpm sock
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.2-fpm-www.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    # ПЛАГИНЫ : Включить правила переписывания для карты сайта Yoast SEO
    rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;
    rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;
}

global/commonf.conf:

# Глобальный файл конфигурации.
# ОСНОВНЫЕ : Настройка порта прослушивания Nginx
listen 80;
# ОСНОВНЫЕ : Файл по умолчанию для обслуживания. Если первый файл не найден, 
index index.php index.html index.htm;
# ОСНОВНЫЕ : отсутствие логов для favicon
location = /favicon.ico {
    log_not_found off;
    access_log off;
}
# ОСНОВНЫЕ : robots.txt
location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
}
# ОСНОВНЫЕ : Настройка страниц 404
error_page 404 /404.html;
# ОСНОВНЫЕ : Настройка страниц 50x
error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/www;
    }
# БЕЗОПАСНОСТЬ : Запретить все попытки доступа к скрытым файлам .abcde
location ~ /\. {
    deny all;
}
# ЭФФЕКТИВНОСТЬ : Установить заголовки истечения для статических файлов и отключить ведение журналов.
location ~* ^.+\.(js|css|swf|xml|txt|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
    access_log off; log_not_found off; expires 30d;
}

Я пытался найти решение в Интернете, но не смог ничего найти. Спасибо за помощь!

Я тоже ищу ответ на эту ошибку. Ближайшее, что я могу найти, это то, что это либо настройка, специфичная для плагина, либо это nonce, который не валидируется. Смотрите: Получение “Ссылка, по которой вы прошли, истекла” при добавлении пользовательского поста

.

Ответ или решение

Ошибка "Ссылка, по которой вы перешли, истекла" в WordPress Multisite (поддомены) может быть вызвана несколькими факторами, связанными с конфигурацией вашего сервера, ограничениями PHP или плагинами. Давайте разберемся в причинах этой проблемы и возможных путях ее решения.

1. Причины возникновения проблемы

1.1. Ограничения PHP

Ошибка часто связана с лимитами, установленными в файле конфигурации PHP (php.ini). Обычно это происходит из-за того, что размер загружаемых файлов превышает установленное значение, или из-за недостаточного времени выполнения скрипта. Обратите внимание на следующие параметры:

  • upload_max_filesize: максимальный размер загружаемого файла.
  • post_max_size: максимальный размер данных, которые могут быть переданы методом POST.
  • max_execution_time: максимальное время выполнения скрипта.

1.2. Неправильная настройка сервера Nginx

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

1.3. Проблемы с плагинами

Некоторые плагины могут конфликтовать друг с другом или с ядром WordPress, что также может вызывать эту ошибку. В таком случае может быть полезно отключить все плагины и поочередно включать их, чтобы определить, какой из них вызывает проблему.

2. Рекомендации по решению

2.1. Настройка параметров PHP

Убедитесь, что в файле php.ini установлены следующие параметры (примерные значения):

upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
max_input_time = 300

После внесения изменений не забудьте перезапустить PHP-FPM и Nginx:

sudo systemctl restart php7.2-fpm
sudo systemctl restart nginx

2.2. Корректировка конфигурации Nginx

В вашей конфигурации Nginx убедитесь, что присутствуют необходимые директивы для обработки длинных запросов и кода.

Вы можете добавить следующее в блок server:

client_max_body_size 64M;  # Устанавливает максимальный размер тела запроса

2.3. Проверка плагинов

Отключите все плагины и проверьте, возникает ли ошибка. Если ошибка исчезла, включайте плагины по одному, чтобы найти конфликтующий. Также убедитесь, что все используемые плагины и тема обновлены до последних версий.

3. Дополнительные проверки

3.1. Логи ошибок

Регулярно проверяйте журналы ошибок Nginx и PHP-FPM для получения более точной информации о возникновение ошибки. Это может дать подсказку о том, что идет не так.

tail -f /var/log/nginx/domain.name.error.log

3.2. Проверка прав доступа

Убедитесь, что папки и файлы вашего WordPress имеют правильные права доступа. Рекомендуемые права:

  • Для папок: 755
  • Для файлов: 644

Заключение

Ошибка "Ссылка, по которой вы перешли, истекла" в WordPress может быть связана с различными аспектами, включая настройки сервера, лимиты PHP или конфликты плагинов. Внимательно проверьте конфигурацию вашего сервера и параметры PHP, чтобы убедиться, что они соответствуют требованиям WordPress, и осуществите необходимые изменения, чтобы устранить проблему. Не забывайте периодически обновлять плагины иテーマ, а также проверять логи сервера для обнаружения проблем. Это позволит к вашему сайту работать без сбоев и ошибок.

Оцените материал
Добавить комментарий

Капча загружается...