Вопрос или проблема
Я использую мультсайт с субдоменами, и я получаю ошибку 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 возникают при попытке доступа к постам, тогда как главная страница сайта работает корректно. Давайте разберёмся, как можно решить эту проблему.
Анализ текущей ситуации
-
Проверка настроек постоянных ссылок: Вы указали, что по умолчанию ссылки работают. Это указывает на проблему с перенаправлением или синтаксисом .htaccess при использовании других структур URL.
-
Файл .htaccess: Ваш текущий код .htaccess может содержать ошибки, препятствующие корректной обработке постоянных ссылок. Без точной настройки, WordPress может не находить необходимую страницу.
Решение проблемы
-
Конфигурация файла .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]
-
Параметры в админ-панели: Попробуйте указать структуру постоянных ссылок с
/index.php/
в настройках WordPress, как вы упомянули. Это частая необходимость на серверах, не поддерживающих модуль переписывания URL на уровне сервера (например, без включённого Apache mod_rewrite). -
Проверка на сервере:
- Убедитесь, что модуль
mod_rewrite
включен на вашем сервере Apache. - Проверьте правильность иерархии поддоменов и субдиректорий в настройках вашего хостинга.
- Убедитесь, что модуль
Дополнительные рекомендации
Если вышеуказанные шаги не помогли, возможно, проблема кроется в конфигурации сервера или взаимодействии с другими установленными плагинами. В таком случае, рекомендуется:
- Отключить временно все плагины, чтобы проверить, не вызывает ли какой-либо плагин конфликта.
- Связаться с поддержкой вашего хостинг-провайдера для проверки конфигурации вашего сервера.
Если вы выполните вышеуказанные рекомендации, это с высокой вероятностью позволит решить проблему с отображением постоянных ссылок в мультисайтовой установке WordPress. Успехов в вашей настройке!