Вопрос или проблема
У меня сейчас действительно проблема с некоторыми сайтами на WP. У нас есть основной сайт и несколько установок WP в подпапках, связанных с франшизой, но все они отдельные, не мультисайт (не знаю, почему, унаследовал). Сайты хорошо работали на SiteGround, но мы недавно мигрировали на новый сервер, и миграция всё ещё работает неправильно.
Проблема в том, что плагин Woocommerce отказывается отображать магазин на всех поддоменах, кроме основного домена. Основной сайт в порядке, но страницы магазина всех подпапок выдают ошибку 404, с сообщением об ошибке основного домена, не сайта подпапки.
Также были много проблем с другими страницами, но переименовав файл web.config в web.config.bak на основном сайте, я избавился от многих проблем. Но теперь на основном сайте у меня остался пустой файл .htaccess, и мне кажется, что есть люди, которые ведут такие магазины в подпапках и на основном домене, так что если кто-то может посоветовать, как исправить настройку, буду весьма признателен. Не знаю, проблема ли в каждой установке подсайта или в основном. Пример файла web.config для подсайта (с выделением)
<configuration>
<system.webServer>
<rewrite>
<rules>
<remove name="Main Rule"/>
<rule name="YourSubFolderRuleName" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule>
<rule name="WordPress: https://domain.com/subdomainname" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<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>
Все плагины были деактивированы, и проблема всё ещё существует, плюс я пробовал сменить темы на стандартную 2021, которая была единственной другой темой WP, установленной на сайте, и это не решило проблему.
Кроме того, пытаясь найти решение, я деактивировал и снова активировал плагин Woocommerce, и настройка не завершена, возникают ошибки, когда просят ввести вашу страну, говорится, что они не могут их загрузить, и когда вы пропускаете, в основном застревает на загрузочной странице вместо завершения настройки магазина. Заранее спасибо.
Ответ или решение
Проблема, описанная вами, связана с неправильной конфигурацией после миграции на новый сервер. Давайте разберем шаги, которые помогут вам восстановить работоспособность ваших сайтов WordPress и WooCommerce в подкаталогах.
-
Проверьте настройки постоянных ссылок:
- Перейдите в админке каждого подкаталога (например,
example.com/subfolder/wp-admin
). - В разделе "Настройки" -> "Постоянные ссылки" нажмите "Сохранить изменения", даже если не вносите никаких изменений. Это обновит правила перезаписи (rewrite rules).
- Перейдите в админке каждого подкаталога (например,
-
Проверьте конфигурацию
.htaccess
:- Убедитесь, что для каждого сайта в подкаталогах существует корректный файл
.htaccess
. Пример стандартного содержимого для WordPress:# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /subfolder/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /subfolder/index.php [L] </IfModule> # END WordPress
- Если у вас нет доступа к
.htaccess
, его необходимо создать.
- Убедитесь, что для каждого сайта в подкаталогах существует корректный файл
-
Проверьте конфигурацию
web.config
:- Так как вы используете Windows сервер, убедитесь, что настройка в
web.config
корректна. Приведённый вами пример выглядит неплохо, но убедитесь, что у вас нет конфликтующих правил. Попробуйте следующее содержимое:<configuration> <system.webServer> <rewrite> <rules> <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>
- Так как вы используете Windows сервер, убедитесь, что настройка в
-
Проверьте конфигурацию WooCommerce:
- Убедитесь, что WooCommerce правильно настроен для каждого подкаталога. Убедитесь, что все страницы WooCommerce (магазин, корзина, оформление заказа и т. д.) существуют и имеют корректные постоянные ссылки.
-
Проверьте наличие конфликтов:
- Убедитесь, что все плагины и тема совместимы с вашей версией WordPress и не конфликтуют. Отключите все плагины снова и переключитесь на стандартную тему на время диагностики.
-
Проверьте на предмет ошибок сервера:
- Просмотрите журналы ошибок сервера. Это может помочь вам понять, почему возникают проблемы с загрузкой страниц и настройкой WooCommerce.
-
Настройка WooCommerce:
- Если возникли проблемы с настройкой WooCommerce после переактивации, попробуйте удалить плагин, заново установить его и пройти через настройку заново.
-
Проверка сервера:
- Убедитесь, что ваш новый сервер поддерживает необходимые версии PHP, MySQL и модули для работы с WordPress и WooCommerce.
Если после выполнения всех этих шагов проблем все еще не удается решить, вы можете рассмотреть возможность обращения к своему хостинг-провайдеру или профессиональному разработчику WordPress для более глубокого анализа ситуации.