При установке движка WordPress на своём домашнем сервере или VPS зачастую возникают проблемы с переходами по постоянным ссылкам на страницах. По умолчанию движек настроен на вид ссылок такого типа:
/?p=123
Вебмастер настраивает сайт на отображение ЧПУ вот такого вида, пример:
/sample-post/
/%postname%/
/2015/02/sample-post/
и ссылки перестают работать, происходит отображение 404 страницы.
Есть стандартное решение описаное в
Оно заключается в создании файла .htaccess в корневом каталоге, (там где установлен WordPress) и добавить в него нужные правила:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Так же необходимо убедится в том, что у вас включен модуль mod_rewrite.
Сделать это можно используя php функцию phpinfo(); в списке подключенных модулей должен быть mod_rewrite.
Включение модуля команда:
a2enmod rewrite
В файле:
/etc/apache2/sites-available/default
где необходимо заменить AllowOverride None на AllowOverride All
Перезапускаем apache:
/etc/init.d/apache2 restart
И после всех этих манипуляций мой сайт стал отдавать 403 страницу - Forbbiden.
Нашёл решение, после сумрачных поисков, внести в файл .htaccess опцию:
Options +FollowSymlinks
Получился такой файл:
# BEGIN WordPress
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Теперь всё работает нормально, переходы по всем ссылкам есть.