it-swarm.com.de

Multisite-Netzwerkadministrator - URL/Weiterleitungsfehler

Ich folgte this Anleitung zum Einrichten einer WordPress-Installation, die für die Bereitstellung von Git optimiert ist.

Grundsätzlich wird WordPress in einen Unterordner namens wordpress verschoben, index.php und wp-config.php werden aus dem Unterordner verschoben, ebenso wie wp-content.
Damit dies funktioniert, werden sowohl der Pfad zu wp-blog-header.php als auch der Pfad zu wp-content angepasst.

Ich hatte dies ohne Probleme mit einer einzelnen Site-Installation, aber da ich oft mit mehreren Sites arbeiten muss, habe ich versucht, eine zu erstellen.

Abgesehen von der Warnung Warning! Subdirectory networks may not be fully compatible with custom wp-content directories. funktionierte alles wie gewohnt, mit einem Problem:

Ich kann nicht auf die Netzwerkadministrationsbildschirme zugreifen.

Die URL des Site-Administrators sieht folgendermaßen aus: http://local.dev/wordpress/wp-admin/, die Links zum Netzwerk-Administrator jedoch so: http://wp1.dev/wp-admin/network/sites.php.
Sie sehen, der /wordpress/ fehlt. Wenn ich manuell hinzufüge, werden die Netzwerkadministrationsbildschirme wie erwartet geladen.

Mein .htaccess sieht so aus:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
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).*) wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wordpress/$2 [L]
RewriteRule . index.php [L]
# END WordPress

und die relevanten Teile meines wp-config.php sehen so aus:

define( 'WP_ALLOW_MULTISITE', true );

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'local.dev');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

Ich habe bereits versucht, PATH_CURRENT_SITE von / in /wordpress/ zu ändern.
Das behebt die URL, aber der Netzwerkadministrationsbildschirm wird nicht geladen, da zu viele Weiterleitungen vorhanden sind. Es scheint also, dass das Problem in meinem .htaccess liegt.

Dort habe ich das bereits versucht (wie vorgeschlagen here ), aber das löst das Problem nicht - der gleiche Fehler bleibt bestehen:

RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

WordPress-Version ist 4.0, das Netzwerk wurde auch bei dieser Version gestartet.

Sehen Sie, was an diesem Setup falsch ist? Wie behebe ich den Fehler "zu viele Weiterleitungen"?

Edit: Ich habe das Problem etwas weiter untersucht. Ich habe versucht, dasselbe mit einer einzelnen Standortinstallation zu tun, und es funktionierte ohne Probleme. Ich vermute, dass die von mir angegebene Warnmeldung aus einem bestimmten Grund angezeigt wird. Trotzdem würde ich gerne wissen, ob es dafür einen Fix oder eine Problemumgehung gibt. Außerdem bin ich mir jetzt ziemlich sicher, dass PATH_CURRENT_SITE/ sein muss, was bedeutet, dass es sich eindeutig um ein .htaccess-Problem handelt.

2
Sven

network admin_url filter kann die URL des Netzwerkadministrators umschreiben.
Aber ich weiß nicht, ob es der beste Weg ist oder nicht.

// wp-config.php
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

// add code //
define('__WORDPRESS_CORE_DIR__', '/wordpress');

add_filter('network_admin_url', 'rewrite_my_network_admin_url', 10, 2);
function rewrite_my_network_admin_url($url, $path) {
  $networkPath = str_replace( '/wp-admin/', __WORDPRESS_CORE_DIR__ . '/wp-admin/', $url );
  return $networkPath;
}

http://chaika.hatenablog.com/entry/2018/02/03/090000 (Japanisch)

1
KiKiKi