Постоянные ссылки не работают в Multisite

Вопрос или проблема

Я использую мультсайт с субдоменами, и я получаю ошибку 404 при попытке зайти на посты. Основной домен работает, но постоянные ссылки не работают. Когда я использую стандартные постоянные ссылки, они работают, но когда я использую пользовательские, такие как /base/%category%/%postname%/, они не работают.

Я думаю, это может быть связано с моим .htaccess, так как я довольно много его редактировал.

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www.)?nofillers.com$

RewriteCond %{REQUEST_URI} !^/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /$1

RewriteCond %{HTTP_HOST} ^(www.)?nofillers.com$
RewriteRule ^(/)?$ /index.php [L]

Для постоянных ссылок вам, возможно, нужно включить index.php перед пользовательской структурой постоянной ссылки в панели настроек постоянных ссылок:

/index.php/%postname%/

Просто догадка, но это то, что мне пришлось сделать на нескольких моих сайтах. Дайте знать, если это не сработает, и тогда мы можем посмотреть на ваш .htaccess файл.

Ответ или решение

Проблемы с работой постоянных ссылок в многосайтовой установке WordPress могут возникать по разным причинам, в том числе из-за конфигурации сервера, настроек WordPress или файлов .htaccess. Вы отметили, что используете поддоменную структуру, и коды состояния 404 возникают при попытке доступа к постам, тогда как главная страница сайта работает корректно. Давайте разберёмся, как можно решить эту проблему.

Анализ текущей ситуации

  1. Проверка настроек постоянных ссылок: Вы указали, что по умолчанию ссылки работают. Это указывает на проблему с перенаправлением или синтаксисом .htaccess при использовании других структур URL.

  2. Файл .htaccess: Ваш текущий код .htaccess может содержать ошибки, препятствующие корректной обработке постоянных ссылок. Без точной настройки, WordPress может не находить необходимую страницу.

Решение проблемы

  1. Конфигурация файла .htaccess: Убедитесь, что в вашем .htaccess файле на поддоменах имеется стандартная структура, рекомендуемая для WordPress Multisite. Пример корректной конфигурации для поддоменов может выглядеть следующим образом:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    # Администраторский интерфейс без subdomain редиректов
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
    
    # L обработка поддоменов
    RewriteCond %{HTTP_HOST} ^([a-z0-9-]+)\.nofillers\.com [NC]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    
    # Обработка всех остальных URL через index.php
    RewriteRule . index.php [L]
  2. Параметры в админ-панели: Попробуйте указать структуру постоянных ссылок с /index.php/ в настройках WordPress, как вы упомянули. Это частая необходимость на серверах, не поддерживающих модуль переписывания URL на уровне сервера (например, без включённого Apache mod_rewrite).

  3. Проверка на сервере:

    • Убедитесь, что модуль mod_rewrite включен на вашем сервере Apache.
    • Проверьте правильность иерархии поддоменов и субдиректорий в настройках вашего хостинга.

Дополнительные рекомендации

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

  • Отключить временно все плагины, чтобы проверить, не вызывает ли какой-либо плагин конфликта.
  • Связаться с поддержкой вашего хостинг-провайдера для проверки конфигурации вашего сервера.

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

Оцените материал
Добавить комментарий

Капча загружается...