- Вопрос или проблема
- Ответ или решение
- Ошибка 404 Not Found при использовании постоянных ссылок в WordPress
- 1. Проверьте файл .htaccess
- 2. Проверьте наличие модуля mod_rewrite
- 3. Проверьте настройки виртуального хоста
- 4. Проверка SELinux
- 5. Проверьте права доступа к файлам и директориям
- 6. Кэш и конфликты плагинов
- Заключение
Вопрос или проблема
Я установил последнюю версию WordPress на своем сервере EC2 с Ubuntu 13.1. После того как я изменил постоянную ссылку на /%post-name%/
, я сталкиваюсь с ошибкой 404 не найдено для постов. Я следовал почти всем рекомендациям из этой статьи (Страница не найдена – Постоянная ссылка WordPress — FelfelWorld.com), но все еще имею эту проблему.
Для справки, я помню, что отключил листинг директорий для своего сервера Apache с помощью SELinux (если я правильно помню)
Звучит как проблема с 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
Убедитесь, что ваш веб-сервер имеет включенный модуль перезаписи. Например, если вы используете Wamp и Apache: Нажмите на значок Wamp в трее, Apache > Модули Apache > модуль перезаписи (убедитесь, что он выбран).
http://www.felfelworld.com/2013/02/12/page-not-found-permalink-wordpress/
Ответ или решение
Ошибка 404 Not Found при использовании постоянных ссылок в WordPress
При установке WordPress на сервер Amazon EC2 с операционной системой Ubuntu 13.1, вы можете столкнуться с проблемой 404 Not Found для постов после изменения постоянных ссылок на формат /%post-name%/
. Эта ситуация, как правило, связана с настройками веб-сервера или файла .htaccess. Рассмотрим шаги по устранению данной ошибки.
1. Проверьте файл .htaccess
Файл .htaccess в корневой директории вашего WordPress является ключевым для настройки постоянных ссылок. Убедитесь, что в вашем .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.
2. Проверьте наличие модуля mod_rewrite
Для корректной работы постоянных ссылок необходим модуль mod_rewrite
. Чтобы убедиться, что он включен, выполните следующие команды в терминале:
sudo a2enmod rewrite
sudo systemctl restart apache2
Это включит модуль и перезапустит Apache, что необходимо для применения изменений.
3. Проверьте настройки виртуального хоста
Убедитесь, что настройки вашего виртуального хоста (обычно в файле /etc/apache2/sites-available/000-default.conf
) допускают использование .htaccess. Вам нужно добавить следующие строки:
<Directory /var/www/html>
AllowOverride All
</Directory>
Здесь /var/www/html
— это путь к директории, где установлен ваш WordPress. После изменений не забудьте перезапустить Apache:
sudo systemctl restart apache2
4. Проверка SELinux
Вы упомянули, что отключали перечисление директорий с помощью SELinux. Важно также убедиться, что настройки SELinux не блокируют работу Apache. Если SELinux включен, вы можете проверить его состояние с помощью команды:
sestatus
Если SELinux активен, попробуйте временно отключить его для тестирования:
sudo setenforce 0
Если ошибка исчезла, возможно, потребуется настроить SELinux для корректной работы с вашими правилами.
5. Проверьте права доступа к файлам и директориям
Убедитесь, что ваш веб-сервер (обычно это пользователь www-data
в Ubuntu) имеет необходимые права на чтение и выполнение файлов и директорий WordPress:
sudo chown -R www-data:www-data /var/www/html/*
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;
6. Кэш и конфликты плагинов
Иногда проблемы с постоянными ссылками могут быть вызваны кэшем или конфликтами плагинов. Очистите кэш вашего сайта и браузера, а также временно отключите все плагины и проверьте, исчезла ли ошибка.
Заключение
Ошибка 404 Not Found при использовании постоянных ссылок в WordPress может быть вызвана несколькими факторами, начиная от некорректного файла .htaccess и заканчивая проблемами с модулями Apache. Следуя представленным шагам, вы сможете успешно устранить эту проблему и настроить постоянные ссылки, улучшая SEO и пользовательский опыт на вашем сайте. Не забывайте о регулярном обновлении и резервном копировании данных вашего WordPress сайта, чтобы избежать подобных ситуаций в будущем.