- Вопрос или проблема
- Ответ или решение
- Как исправить ошибку 404 для постоянных ссылок в WordPress на IIS 8.5
- Введение
- Шаг 1: Проверка конфигурации файла web.config
- Шаг 2: Сохранение настроек постоянных ссылок
- Шаг 3: Принудительная очистка правил перезаписи
- Шаг 4: Проверка наличия необходимых разрешений
- Заключение
Вопрос или проблема
Я включил постоянные ссылки на своем сайте WordPress, и теперь каждая страница возвращает ошибку 404. Сайт размещен на IIS 8.5
Файл web.config имеет следующее правило внутри
<?xml version="1.0" encoding="UTF-8"?>
<directoryBrowse enabled="false"/>
<rewrite>
<rules>
<clear/>
<rule name="wordpress" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
Что я могу сделать, чтобы это исправить и заставить постоянные ссылки работать?
Чтобы постоянные ссылки работали, вам нужно снова сохранить постоянные ссылки в административном разделе постоянных ссылок WP. То же самое касается изменения структуры URL, даже если постоянные ссылки уже использовались.
Вам нужно вставить этот код <?php flush_rewrite_rules( True ); ?>
в файл functions.php, чтобы очистить правила перезаписи.
Ссылка codex.wordpress.org
Ответ или решение
Как исправить ошибку 404 для постоянных ссылок в WordPress на IIS 8.5
Введение
Когда вы активируете постоянные ссылки в WordPress, и ваш сайт начинает возвращать ошибку 404 для всех страниц, это может быть связано с неправильной конфигурацией веб-сервера IIS. Часто проблема возникает из-за незаконченной настройки правил переписывания URL или ненастроенной структуры постоянных ссылок. В данной статье мы разберем эффективные шаги для устранения данной ошибки.
Шаг 1: Проверка конфигурации файла web.config
Ваш файл web.config
уже содержит базовое правило для работы с постоянными ссылками, однако важно убедиться, что оно правильно настроено. Убедитесь, что ваш файл выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="false"/>
<rewrite>
<rules>
<clear/>
<rule name="wordpress" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Эта конфигурация должна обрабатывать запросы к постоянным ссылкам, перенаправляя их на index.php
, если запрашиваемый файл или директория отсутствует.
Шаг 2: Сохранение настроек постоянных ссылок
Для того чтобы WordPress правильно сгенерировал новые правила перезаписи, вам необходимо зайти в админ-панель WordPress и заново сохранить настройки постоянных ссылок. Перейдите в Настройки → Постоянные ссылки и просто нажмите кнопку «Сохранить изменения». Это позволит WordPress обновить свои правила.
Шаг 3: Принудительная очистка правил перезаписи
Иногда проблема может возникнуть из-за кэшированных правил. Чтобы вручную сбросить правила переписывания, добавьте следующий код в файл functions.php
вашей активной темы:
<?php
flush_rewrite_rules(true);
?>
Этот код будет вызывать очистку правил перезаписи при каждом обновлении темы. После его добавления, не забудьте удалить его или закомментировать, чтобы избежать излишней нагрузки на сервер.
Шаг 4: Проверка наличия необходимых разрешений
Убедитесь, что ваш сервер IIS имеет необходимые права на запись в директорию WordPress. Все необходимые файлы и папки, включая wp-content
и uploads
, должны быть доступны для чтения и записи.
Заключение
Следуя вышеописанным шагам, вы сможете устранить ошибку 404 и настроить постоянные ссылки для вашего сайта на WordPress, работающем под управлением IIS 8.5. Если проблема не решается, рекомендуется проверить другие аспекты конфигурации сервера или обратиться к хостинг-провайдеру для получения дополнительной информации о возможных настройках, которые могут блокировать работу постоянных ссылок.