Wordpress 4.9.4 многосайтовый (подкаталог) постоянные ссылки нарушены после сопоставления домена

У нас есть мультисайт Wordpress 4.9.4 со структурой сайта типа подкаталог. Устанавливается не напрямую в www, а в подкаталог.

Базовый URL-адрес выглядит следующим образом: http://aa/a
URL-адрес сайта имеет вид: http://aa/a/a
URL-адрес страницы имеет вид: http://aa/a/a/a
Постоянные ссылки работают нормально при любых настройках.

Мы начали сопоставлять домены с дочерними сайтами, используя встроенную функциональность Wordpress (без плагинов), установив новое доменное имя в Sites-> Site-> Edit
например: http://aa/a/a -> http://bb

Оба соответствующих значения (домашний и базовый URL) установлены в таблице wp_options, и сайты работают.

ПРОБЛЕМА: мы можем использовать только структуру постоянных ссылок по умолчанию, так как любая другая выдает внутреннюю ошибку сервера 500.
например: http://bb/?page_id=10 работает, http://bb/b - нет.

wp-config.php содержит следующее (может быть неактуальным):

// Multisite
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'a.a');
define('PATH_CURRENT_SITE', '/a/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
// Domain mapping cookie settings
define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');

.htaccess:

RewriteEngine On
RewriteBase /a/
RewriteRule ^index\.php$ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

ВОПРОС: Как заставить работать постоянные ссылки типа http://b.b/b?

РЕДАКТИРОВАТЬ: После долгих поисков и некоторых проб и ошибок я нашел половинчатое решение.

В настройках постоянных ссылок выберите Custom Structure и введите index.php /% postname%.

Таким образом, хотя мы должны использовать структуру ссылок http://bb/index.php/b, но по крайней мере, это не так? page_id = 123. Wordpress уже имеет правила для исключения index.php из URL-адреса, но, похоже, он не распространяется на сопоставленные домены.

Вы знаете, как удалить index.php из URL в сопоставленных доменах?


person Vörös Amadea    schedule 02.05.2018    source источник


Ответы (1)


РАБОТАЮЩИЙ МОДИФИЦИРОВАННЫЙ HTACCESS:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) a/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ a/$2 [L]
RewriteRule . index.php [L]

Кроме того, убедитесь, что пользователь-владелец .htaccess имеет правильные права доступа и права использования модуля mod_rewrite.

person Vörös Amadea    schedule 03.01.2019