web-dev-qa-db-ja.com

マルチサイトネットワーク管理者 - URL /リダイレクトエラー

this に従って、gitの導入に最適化されたWordPressのインストール方法を説明しました。

基本的に、WordPressはwordpressと呼ばれるサブフォルダに移動さ​​れ、index.phpwp-config.phpwp-contentと同様にサブフォルダから移動されます。
これを機能させるために、wp-blog-header.phpへのパスと同様にwp-contentへのパスが調整されます。

私はこれを単一サイトのインストールで問題なく動作させましたが、私はしばしばマルチサイトで動作しなければならないので、私はそれを作成しようとしました。

警告Warning! Subdirectory networks may not be fully compatible with custom wp-content directories.のほかに、1つ問題があるが、すべてが通常どおりに機能した。

ネットワーク管理画面にアクセスできません。

サイト管理者のURLはhttp://local.dev/wordpress/wp-admin/ですが、ネットワーク管理者へのリンクはhttp://wp1.dev/wp-admin/network/sites.phpのようになっています。
つまり、/wordpress/がありません。手動で追加した場合、ネットワーク管理画面は予想どおりにロードされます。

私の.htaccessはこのようになります:

# 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

そして私のwp-config.phpの関連部分はこのようになります:

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);

私はすでにPATH_CURRENT_SITE/から/wordpress/に変更しようとしました。
これでURLは修正されますが、リダイレクトが多すぎるためにネットワーク管理画面が表示されないため、問題は私の.htaccessにあります。

私はすでにこれを試してみました(提案されたように here )、しかしこれは問題を解決しません - 同じエラーが持続します:

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

WordPressのバージョンは4.0です、ネットワークもこのバージョンで開始されました。

あなたはこの設定で何が間違っているのを見ますか? 'リダイレクトが多すぎる'エラーを修正するにはどうすればよいですか?

編集:私はこの問題をもう少し詳しく調べた。私は単一サイトのインストールで同じことをやろうとしました、そしてそれは問題なく動作しました。私が推測したのは、私が引用した警告メッセージは理由があるということです。それでも、これに対する修正または回避策があるかどうかを知りたいと思います。また、PATH_CURRENT_SITE/でなければならないと確信しています。これは明らかに.htaccessの問題です。

2
Sven

network admin_urlフィルタはネットワーク管理URLを書き換えることができます。
しかし、私はそれが最善の方法かどうかわからない。

// 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 (日本語)

1
KiKiKi