this に従って、gitの導入に最適化されたWordPressのインストール方法を説明しました。
基本的に、WordPressはwordpress
と呼ばれるサブフォルダに移動され、index.php
とwp-config.php
はwp-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
の問題です。
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;
}