В Wordpress 4.9.4 постоянные ссылки на несколько сайтов (подкаталог) прерваны после сопоставления домена - PullRequest
0 голосов
/ 02 мая 2018

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

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

Мы начали отображать домены на дочерние сайты , используя встроенную функциональность Wordpress (без плагинов), установив новое имя домена в Сайтах-> Сайт-> Редактировать.
напр .: http://a.a/a/a -> http://b.b

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

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

EDIT: После долгих поисков и проб и ошибок я нашел половину решения.

В настройках постоянных ссылок выберите Пользовательскую структуру и введите index.php /% postname%

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

Знаете ли вы способ удаления index.php из URL в сопоставленных доменах?

1 Ответ

0 голосов
/ 04 января 2019

Модифицированный 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.

...