Вопрос или проблема
Итак. Проблема, описанная в заголовке. Изучил много информации, но близок к безумию!
- Провел все действия по ‘Обновлению постоянных ссылок’
- Отредактировал .htaccess(*) и вставил общий код перезаписи, затем снова обновил постоянные ссылки – однако код перезаписывается оригинальным кодом перезаписи .htaccess, хотя в FTP ‘дата изменения’ файла .htaccess не меняется (!??!)
Пробовал добавлять новое меню и новую страницу с нуля – это также возвращает 404, если не войти как пользователь.
Есть какие-нибудь идеи, пожалуйста?
(*) Оригинальный код .htaccess заменен на:
># BEGIN WordPress
><IfModule mod_rewrite.c>
>RewriteEngine On
>RewriteBase /
>RewriteRule ^index\.php$ - [L]
>RewriteCond %{REQUEST_FILENAME} !-f
>RewriteCond %{REQUEST_FILENAME} !-d
>RewriteRule . /index.php [L]
></IfModule>
># END WordPress
…перезаписывается на:
># BEGIN WordPress
># Директивы (строки) между "BEGIN WordPress" и "END WordPress" являются
># динамически сгенерированными и должны изменяться только с помощью фильтров WordPress.
># Любые изменения директив между этими маркерами будут перезаписаны.
><IfModule mod_rewrite.c>
>RewriteEngine On
>RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] ##<--Эта строка, очевидно, добавляется
>RewriteBase /
>RewriteRule ^index\.php$ - [L]
>RewriteCond %{REQUEST_FILENAME} !-f
>RewriteCond %{REQUEST_FILENAME} !-d
>RewriteRule . /index.php [L]
></IfModule>
># END WordPress
Решено!
.htaccess и постоянные ссылки — не проблема.
Нашел проблему, отключив все плагины один за другим, пока не нашел плагин ограничения доступа к содержимому, который каким-то образом был неправильно настроен для незалогиненных пользователей. Я ничего не изменял, но вот так! Перенастроил и все заработало.
Ответ или решение
Ошибка 404 на новых страницах для пользователей, не входящих в систему
Ошибка 404, возникающая при доступе к новым страницам только для пользователей, не вошедших в систему, может быть связана с несколькими факторами. Давайте рассмотрим возможные причины и их решения.
1. Проверьте настройки плагинов
Как вы выяснили, причиной проблемы был неправильно настроенный плагин ограничения доступа к контенту. Если этот плагин ограничивает видимость страниц для незарегистрированных пользователей, это может вызвать ошибку 404. Рекомендуется:
- Отключить плагины по одному и проверять доступ к страницам.
- Пересмотреть настройки плагина, ответственного за доступ, убедившись, что они не блокируют контент для незалогиненных пользователей.
2. Проблемы с .htaccess
Хотя проблема с .htaccess в вашем случае была исключена, стоит отметить:
- Если у вас есть доступ к файлу .htaccess, убедитесь, что он правильно сконфигурирован. Например, стандартная конфигурация WordPress выглядит следующим образом:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Если вы вносили изменения в этот файл, убедитесь, что они не конфликтуют с правилами, добавленными WordPress.
3. Перепривязка постоянных ссылок
Хотя вы уже сделали попытку обновить постоянные ссылки, это может иногда помочь решить подобные проблемы. Попробуйте снова:
- Перейдите в «Настройки» > «Постоянные ссылки» и просто нажмите «Сохранить изменения» без внесения каких-либо изменений. Это перезапустит правила и может устранить проблему.
4. Кэширование
Системы кэширования (как на уровне сервера, так и с помощью плагинов) также могут вызывать ошибки 404 для незалогиненных пользователей. Попробуйте:
- Очистить кэш вашего сайта.
- Отключить плагины кэширования, чтобы проверить, не связана ли проблема с ними.
5. Обновление темы
Иногда ошибки могут быть вызваны самой темой WordPress. Если у вас установлена пользовательская тема или недавно обновленная, попробуйте:
- Временно переключиться на стандартную тему WordPress, как Twenty Twenty-One, чтобы проверить, сохраняется ли ошибка.
6. Конфликты с JavaScript
Некоторые скрипты на страницах могут блокировать доступ или выполнять редиректы, которые приводят к ошибкам. Проверьте в консоли браузера на наличие JavaScript-ошибок и отладьте их.
Заключение
Ошибка 404 для незалогиненных пользователей может быть результатом различных причин, включая неправильные настройки плагинов, конфигурацию .htaccess, кэширование или конфликты тем. Убедитесь, что все шаги устранения неполадок выполнены, и, при необходимости, обращайтесь за помощью к разработчикам плагинов или тем, чтобы выяснить, как настроить их, не ограничивая доступ для незалогиненных пользователей.