Две установки WordPress Multisite в разных подкаталогах - PullRequest
5 голосов
/ 05 марта 2019

У меня есть установка WordPress Multisite здесь: mydomain.com. Я использую ее для разных языков, таких как:

 mydomain.com/fr
 mydomain.com/de
 ...

Сейчас мы меняем дизайн, но мы хотели бы делать шаг за шагом, язык поlanguage.

Итак, мы установили еще один Wordpress Multisite в папку / new, чтобы он прекрасно работал с такими сайтами, как

 mydomain.com/new/fr
 mydomain.com/new/de
 ...

Мы хотели бы перенаправить язык JUST THE FRENCH на новый wordpress,Я пытался с этим .htaccess в корневой папке (на основе информации в Wordpress документации :

RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteCond %{REQUEST_URI} !^/fr/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^fr(.*)$ /new/fr/$1
RewriteCond %{HTTP_HOST} ^mydomain.com$
RewriteRule ^fr(/)?$ /new/fr/index.php [L] 

Но это дает «Ошибка при установлении соединения с базой данных». Этостранно, потому что, как я объяснил, сайт mydomain.com/new/fr работает отлично.

ПРИМЕЧАНИЕ: мы не хотим использовать субдомены, я знаю, что это привело бы к другому подходу и решению ;-)

РЕДАКТИРОВАТЬ: ошибка в том, что этот запрос

SELECT  blog_id FROM wp_blogs  WHERE domain IN ( 'mydomain.com' ) AND path IN ( '/fr/', '/' )  ORDER BY CHAR_LENGTH(path) DESC LIMIT 1

Я думаю, перенаправление работает хорошо, но когда wordpress внутри "новой" директории пытается определить, какой блог посетить, ончитает URL, и он действительно находится в «/», поскольку правило перенаправления имеет [L] и сохраняет исходный URL в переменных окружения apache.

1 Ответ

3 голосов
/ 14 марта 2019

Если вы активировали Multisite в WordPress 3.5 или более поздней версии, вы можете выполнить настройку документации в разделе .htaccess and Mod Rewrite

Согласно документации:

.htaccess и Mod Rewrite В отличие от WordPress с одним сайтом, который может работать с «уродливыми» постоянными ссылками и, следовательно, не требует Mod Rewrite, MultiSite требует его использования для форматирования URL-адресов для ваших дочерних сайтов.Это требует использования файла .htaccess, формат которого будет немного отличаться, если вы используете SubFolders или SubDomains.Приведенные ниже примеры - это стандартные записи .htaccess для вложенных папок и поддоменов WordPress, когда WordPress установлен в корневой папке вашего сайта.Если у вас есть WordPress в его собственной папке, вам нужно соответствующим образом изменить значение для RewriteBase.

...