WordPress multisite в подкаталоге, а не в корневом каталоге, и удалите базовую папку из URL-адреса

Возможно, я неправильно понял, но не могу найти решение следующей необходимости: я хочу установить WordPress в подпапку моего каталога www , скажем, www/wp . Затем я хочу добавить два блогов в многопользовательскую сеть под названием foo и bar . Когда я это сделаю, у них получится URL:

  • http://example.com/wp/foo
  • http://example.com/wp/bar

Я хотел бы, чтобы они были расположены по адресу:

  • http://example.com/foo
  • http://example.com/bar

Но я не хочу, чтобы сайт WP работал в home/root :

  • http://example.com

Потому что я буду запускать другое приложение там (иначе я бы просто установил WordPress в корень и делал) с ним.

Как это настроить?

Установите WordPress в свой собственный каталог . Следуйте инструкциям по предоставленной ссылке. Вам нужно будет установить два файла WP в корневой каталог – index.php и .htaccess. Те могут или не могут вмешиваться в ваш существующий веб-сайт.

Недавно я попытался сделать то же самое и нашел решение, которое сработало для меня.

Во-первых, выполните настройку multisite в подкаталоге:

Во-вторых, добавьте каталог в корневой каталог:

В этом вновь создаваемом каталоге (/ site1 /) вы можете добавить .htaccess чтобы переписать все запросы на мультисайты. Я не эксперт в этом, но этот код работал для меня в файле .htaccess :

 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(index\.php)$ /multi/$1 RewriteRule ^(.*)$ /multi/$1 

WordPress все еще имеет множество ссылок в базе данных на ваш подкаталог site1 . Итак, следующее, что вам нужно сделать, это изменить все записи в базе данных. Вы можете использовать этот скрипт для этой цели.

Теперь все должно работать, и когда вы заходите на сайт http://www.mydomain.com/site1, вы должны увидеть свой мультисайтовый дочерний узел. Единственная проблема заключается в том, что иногда вы не можете войти в систему из-за конфликтов доменов cookie. Чтобы исправить это, удалите все куки домена (я использовал инструменты chrome dev). Во-вторых, добавьте эти строки в файл wp-config.php :

 define('ADMIN_COOKIE_PATH', '/'); define('COOKIE_DOMAIN', ''); define('COOKIEPATH', ''); define('SITECOOKIEPATH', ''); 

Надеюсь, это сработает для вас.