У меня есть установка 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.