Если главная страница сайта отображается, а внутренние выдают ошибку 404 или 500, проблема заключается в отсутствии файла .htaccess или его неправильном содержании.
Внутренние страницы перестают открываться на CMS (WordPress, Joomla, DLE), поскольку в этих системах файл .htaccess имеет большое значение и часто видоизменяется. Проблема появляется при переносе сайта с одного виртуального хостинга на другой.
Оглавление статьи:
- Причины и решение ошибки 404/500
- Файл .htaccess для WordPress
- Хостинг на Windows и панель ISPmanager
Причины и решение ошибки 404/500
Файл .htaccess должен содержать записи, необходимые для работы CMS. При переносе сайта на новый хостинг, особенно через браузерные версии панелей хостеров, данный файл может не попасть в архив из-за настроек безопасности. Как следствие, на новом хостинге файла не будет, и правильно развернутая из бекапа и настроенная CMS работать не будет — кроме главной страницы. Наиболее часто проблема наблюдается на сайтах, где вместо стандартного отображения URL подключено ЧПУ.
Внутренние страницы перестают открываться, если:
- Файл .htaccess отсутствует. Проблема актуальна при переносе сайта с одного хостинга на другой.
- Файл пустой. Содержимое файла может быть удалено по ошибке, в результате заражения сайта вирусами или по иной причине.
- Содержимое файла изменено или повреждено. Если внутренние страницы сайта перестали работать после каких-либо действий с .htaccess, следует проверить файл на наличие всех директив, необходимых для работы CMS.

Отличительной особенностью ошибки с файлом .htaccess является измененный дизайн страницы 404/500. Страницы ошибки 404 будут отдаваться сервером и отличаться от оформления 404 у сайта (с шаблоном и дизайном, элементами навигации). Актуально, по крайней мере, для WordPress.
Для исправления ошибок нужно создать .htaccess с нужным содержимым. Содержание файла будет меняться в зависимости от CMS. Помимо указанного кода, в файле может содержаться любая информация и директивы, необходимые для функционирования сайта.
Файл .htaccess для WordPress
Каждая система управления контентом требует определенных директив для полноценного и корректного функционирования. Документ .htaccess должен располагаться в корне сайта и иметь, как минимум, указанное ниже содержание (для WordPress).
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Содержимое файлов для других популярных CMS можно без проблем найти в сети — там текста в разы больше, и в статью информация попросту бы не влезла. У WordPress содержимое файла не менялось годами, а потому ошибка одинаково хорошо решается на всех версиях движка.
Хостинг на Windows и панель ISPmanager
Любые операции с файлом .htaccess актуальны только для хостингов, расположенных на Linux-серверах. Сервера от Windows попросту не имеют такого файла — вместо него аналогичные функции выполняются в документе web.config. Уточнять содержимое данного файла следует в поддержке соответствующей CMS.
Помимо этого, проблема с ошибкой 404 на внутренних страницах актуальна для Linux-серверов с панелями ISPmanager. В этом случае требуется отключить автоподдомены, если они включены, и проверить наличие проблемы. Ошибки 404 и 500 могут исчезнуть и без замены .htaccess (либо с файлом изначально все нормально, если он присутствует в корне и правильно заполнен).
I moved a website from a third party to an internal IP.
I unzipped the WP installation and imported the mysql DB and ran these queries :
UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com');
I can see my new index.php and even login to the admin section , but I cannot get to any of the links in the pages. I get 404 errors. The admin page lists the new domain correctly.
I might be missing a .htaccess or a rewite rule and I am not sure of what to do.
Any suggestions will be much appreciated.
Разберем что же делать, если при переносе WordPress у Вас работает только главная страница, а когда заходите в свои записи – получаете ошибку 404 URL не найден (url not found) .
Во первых в базе данных в таблице wp_options измените два поля с URL на новый URL с адресом на который переносите.
Затем зайдите в консоль wordpress -> настройки, постоянные ссылки, обновите эту страницу нажав “сохранить”.
Решение проблемы – обновление постоянных ссылок (ЧПУ).
Происходит это потому, что в базе данных в таблице wp_posts остаются поля со старыми URL, можно изменить всё и в phpMyAdmin’е, но проще и быстрее это сделать именно в консольки wordpress’а.
Если не справились, то пишите нам тут: связаться с нами
-
WordPress
Добрый день. Перенёс WP с хостинга на другой хостинг, ошибка 404 на всех страницах кроме главной.
.htaccess присутствует
-
Вопрос заданболее трёх лет назад
-
3226 просмотров
Комментировать
Решения вопроса 2

Привет. Можно ссылочку увидеть и .htaccess?
-
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]# END WordPress
rahrah.ru
-

Alexander Kovalenko: попробуй зайти в Параметры->постоянные ссылки->настройки постоянных ссылок и сохранить изменения.
-

Решилось, проблема была с файлом web.config
-
А можешь подсказать как решил проблему
Пригласить эксперта
Похожие вопросы
-
Показать ещё
Загружается…
22 июн. 2023, в 11:00
200 руб./в час
22 июн. 2023, в 10:49
5000 руб./за проект
22 июн. 2023, в 10:00
2500 руб./за проект
Минуточку внимания
Иногда после переноса сайта на другой хостинг он перестаёт работать. Или не работают только внутренние страницы, особенно если включены ЧПУ ссылки.
Причин, конечно же, может быть много. Но иногда мы упускаем самое простое. Например, ошибка 404 на внутренних страницах WordPress может возникать, когда отсутсвует файл «.htaccess».
При копировании файлов с одного хостинга на другой можно случайно забыть перенести файл htaccess, потому что он скрыт.
Также если вдруг возникла ошибка 404 проверьте есть ли файл .htaccess в корне сайта и не очистился ли он случайно от данных. Например, вы что-то сохраняли в него, а место на диске не было. В итоге файл может оказаться пустым.

