Меню

Ошибка 404 wordpress при смене постоянных ссылок

There can be multiple things preventing the rewrite rule from working. My ubuntu server needed 3 things changed to get permalinks working.

In newer versions of apache2, you need to enable the module:

sudo a2enmod rewrite
sudo service apache2 restart

You may also need to modify the apache2.conf file.

sudo nano /etc/apache2/apache2.conf

Change your web directory override rule to AllowOverride All.

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

After that, restart the service again.

The .htaccess file in the WordPress install directory needs to be owned or readable/modifiable by the webserver.

This can be accomplished by changing owner to www-data (usually the webserver user), or changing permissions.

sudo chown www-data /var/www/wordpress-install/.htaccess 

OR

sudo chmod 664 /var/www/wordpress-install/.htaccess

Login to your WordPress admin backend and save the permalink settings, and they should hopefully be working.

Если главная страница сайта отображается, а внутренние выдают ошибку 404 или 500, проблема заключается в отсутствии файла .htaccess или его неправильном содержании.

Внутренние страницы перестают открываться на CMS (WordPress, Joomla, DLE), поскольку в этих системах файл .htaccess имеет большое значение и часто видоизменяется. Проблема появляется при переносе сайта с одного виртуального хостинга на другой.

Оглавление статьи:

  • Причины и решение ошибки 404/500
  • Файл .htaccess для WordPress
  • Хостинг на Windows и панель ISPmanager

Причины и решение ошибки 404/500

Файл .htaccess должен содержать записи, необходимые для работы CMS. При переносе сайта на новый хостинг, особенно через браузерные версии панелей хостеров, данный файл может не попасть в архив из-за настроек безопасности. Как следствие, на новом хостинге файла не будет, и правильно развернутая из бекапа и настроенная CMS работать не будет — кроме главной страницы. Наиболее часто проблема наблюдается на сайтах, где вместо стандартного отображения URL подключено ЧПУ.

Внутренние страницы перестают открываться, если:

  1. Файл .htaccess отсутствует. Проблема актуальна при переносе сайта с одного хостинга на другой.
  2. Файл пустой. Содержимое файла может быть удалено по ошибке, в результате заражения сайта вирусами или по иной причине.
  3. Содержимое файла изменено или повреждено. Если внутренние страницы сайта перестали работать после каких-либо действий с .htaccess, следует проверить файл на наличие всех директив, необходимых для работы CMS.

 Страница 404 WordPress

Отличительной особенностью ошибки с файлом .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 (либо с файлом изначально все нормально, если он присутствует в корне и правильно заполнен).

Thank you in advance for any help you might provide. I have read many other posts, and unfortunately the provided solutions did not work.

The problem is this: I have WordPress installed in a supdirectory
http://www.example.com/wordpress and would like to change the front end url to http://www.example.com/somethingelse

When I go to Settings > General and change the Site Address (URL) to http://www.example.com/somethingelse and check the front end, for http://www.example.com/somethingelse, it returns a WordPress custom 404 page. The permalink structure is http://www.example.com/somethingelse/?p=123 and return a root 404 error.

I have made sure that the .htaccess is correct (although when I try to update permalinks with the new Site URL it says its not writable) and that the proper permissions are set.

Now, keeping http://www.example.com/somethingelse as the Site URL setting, if I go to the original http://www.example.com/wordpress, the home page works, though all links show this structure http://www.example.com/somethingelse/?p=123

I have tried adding the URL define to wp-config.php of

define('WP_HOME','http://example.com/wordpress');
define('WP_SITEURL','http://example.com/somethingelse');

I have tried adding the following to my theme’s functions.php

update_option('siteurl','http://example.com/somethingelse');
update_option('home','http://example.com/wordpress');

I have even tried changing both the Site URL and the WordPress URL (checked it manually in the db to make sure it was correct) and changing the directory name to /somethingelse which gives me the white screen of death on every page.

I have tried disabling all plugins and redoing all of the above as well.

I am at a total loss as to what could be causing the errors as I can go over to my other WordPress installs on the same server and change their Site URL with out any problem.

Any help would be greatly appreciated before I run out of hair 😉

Thank you again!

Thank you in advance for any help you might provide. I have read many other posts, and unfortunately the provided solutions did not work.

The problem is this: I have WordPress installed in a supdirectory
http://www.example.com/wordpress and would like to change the front end url to http://www.example.com/somethingelse

When I go to Settings > General and change the Site Address (URL) to http://www.example.com/somethingelse and check the front end, for http://www.example.com/somethingelse, it returns a WordPress custom 404 page. The permalink structure is http://www.example.com/somethingelse/?p=123 and return a root 404 error.

I have made sure that the .htaccess is correct (although when I try to update permalinks with the new Site URL it says its not writable) and that the proper permissions are set.

Now, keeping http://www.example.com/somethingelse as the Site URL setting, if I go to the original http://www.example.com/wordpress, the home page works, though all links show this structure http://www.example.com/somethingelse/?p=123

I have tried adding the URL define to wp-config.php of

define('WP_HOME','http://example.com/wordpress');
define('WP_SITEURL','http://example.com/somethingelse');

I have tried adding the following to my theme’s functions.php

update_option('siteurl','http://example.com/somethingelse');
update_option('home','http://example.com/wordpress');

I have even tried changing both the Site URL and the WordPress URL (checked it manually in the db to make sure it was correct) and changing the directory name to /somethingelse which gives me the white screen of death on every page.

I have tried disabling all plugins and redoing all of the above as well.

I am at a total loss as to what could be causing the errors as I can go over to my other WordPress installs on the same server and change their Site URL with out any problem.

Any help would be greatly appreciated before I run out of hair 😉

Thank you again!

19 июня 2013

35 комментариев

ошибка 404 не найдено	Случается иногда такое что, имея большие функциональные возможности, wordpress вдруг выдает ошибку: Error 404 — Not Found. Порой незначительные изменения в настройках способны сделать сайт недоступным. Однако устранять неисправности и подобные ошибки в wordpress достаточно просто. В этой статье рассматривается вопрос: как исправить ошибку 404 (не найдено).

Обычно, при этой ошибке пользователь может попасть в админ панель и на главную страницу сайта, но при попытке открыть отдельный пост получает ошибку 404 — Not Found.  При этом в большинстве случаев сам пост находится в сохранности и на своем месте. Обычно виной всему файл .htaccess, находящийся на веб-сервере. Чаще всего он расположен в корне, но может быть и в любом каталоге. Файл мог быть удален, либо он неверно сконфигурирован: имеет ошибочный синтаксис директив RewriteRule (записи в .htaccess). Вам необходимо это исправить.

Переходим в настройки (Permalinks) и просто нажимаем кнопку Сохранить изменения.

Как исправить ошибку 404

Этим действием вы обновите настройку постоянных ссылок и правила перезаписи. В большинстве случаев данным способом удается решить проблему ошибки 404 в wordpress, если это не помогает, то на файл .htaccess необходимо еще дать полные права.

Заходим через FTP на свой хостинг, находим файл .htaccess (находится там же, где расположены /wp-content/ и /wp-includes/) и изменяем его. Самое простое, это временно сделать файл записываемым, изменив разрешения на 666 и повторить рассмотренное действие в админ панели. Не забудьте после этого вернуть права файлу на 660. Еще один способ – вручную добавить в .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

Надеюсь, статья помогла вам устранить ошибку 404 в wordpress.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка 404 windows 10
  • Ошибка 404 мозг не найден