Не работают ссылки в WordPress — что делать?

WordPress не работают ссылки

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

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

Например страница, располагающаяся по адресу www.example.com/index.php?p=12385128, может отображаться для всех пользователей и поисковиков как www.example.com/worpress-for-dummies/

Очевидно, что второй вариант гораздо лучше смотрится в плане SEO и читаемости ссылки.  Но при неработающем файле .htaccess ваш сервер просто не поймет, что вместо /worpress-for-dummies/  страницу на самом деле надо искать на index.php?p=12385128 и, закономерно, выдаст ошибку 404.

Так в чем же причина не правильно работающего файла .htaccess? Их может быть несколько.

Вариант №1 — использование кириллицы в адресе страницы

По умолчанию WordPress пытается присвоить странице адрес, состоящий из кириллических слов, если такие присутствуют в заголовке. Чтобы избежать этого, установите плагин Rus-To-Lat в настройках WordPress и все ваши заголовки будут автоматически преобразованы в транслит, прежде чем попасть в адрес страницы.

 

Вариант №2 — неработающий или неправильно настроенный модуль mod_rewrite на вашем сервере Apache2

Для включения и настройки этого модуля на системе Ubuntu 14.04 и выше вам необходимо:

  1. включить модуль командой sudo a2enmod rewrite
  2. открыть конфиг файл апача вашим любимым текстовым редактором.  Файл располагается по адресу /etc/apache2/apache2.conf
  3. найти в файле все строки AllowOverride none и заменить их на AllowOverride All
  4. сохранить файл apache2.conf
  5. перезапустить apache командой sudo service apache2 restart

После этих действий ссылки должны заработать. Если не заработали — переходим к варианту №3, то есть к танцам с бубном.

Вариант №3 — отсутствие файла .htaccess или невозможность записи в него

  1. проверьте наличие файла .htaccess в коренной директории вашего сайта. Под коренной директорией подразумевается директория, в которой находятся директории WordPress, такие как wp-admin и wp-content. По умолчанию эта директория располагается по адресу /var/www/html/
  2. проверьте содержимое файла. Текст в нем должен выглядеть примерно следующим образом:
    # 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
  3. если по прежнему ничего не понятно, попробуйте выставить файлу .htaccess доступ 777, для этого выполните команду chmod 777 .htaccess, перезапустите Apache и попереключайте настройки постоянных ссылок в WordPress. Только не забудьте вернуть доступ на 755 после выполнения всех манипуляций.