web-dev-qa-db-ja.com

Subdirマルチサイトインストールをsubdirコアディレクトリ構造に変更

WordPress 3.5はサブディレクトリのコアファイルを扱うことになっているので、私は自分のローカル開発設定(サブディレクトリマルチサイト)をその設定に移すことにしました。

早送りと私が持っているものは次のとおりです。

wordpress(3.5コア)

wp-content(content dir、WP_CONTENT_DIRWP_CONTENT_URLで設定)

.htaccessと一緒に:

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

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) C:\server\www\dev\wordpress/wp-includes/ms-files.php?file=$2 [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).*) C:\server\www\dev\wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ C:\server\www\dev\wordpress/$2 [L]
RewriteRule . index.php [L]

wp-config.phpと一緒に:

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

index.phpと一緒に:

define('WP_USE_THEMES', true);
require('./wordpress/wp-blog-header.php');

状態:

  • ネットワーク管理者は/wordpress/wp-admin/network/で働いていますが、すべてのリンクは/wp-admin/network/を指すようにしていますが、The given path was above the root path: AH00127: Cannot map GET /wp-admin/network/ HTTP/1.1 to fileForbiddenをエラーにしています
  • ルートサイトはdev.rarst.netで、adminはdev.rarst.net/wordpress/wp-adminで動作します
  • 他のサブディレクトリサイト(dev.rarst.net/*)はアップロードが壊れていて、adminやその他へのリンクがまだありません。

一言で言えば - すべてをうまく動かすためには、ここからどの方向に移動する必要がありますか?

この設定ではどのような管理リンクが必要になりますか(コアは「実際の」サブディレクトリにあり、サイトは「仮想」サブディレクトリにあるため)。

4
Rarst

あなたの.htaccess行はこのように見える必要があります:

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

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) /wordpress/wp-includes/ms-files.php?file=$2 [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]

.htaccessはドキュメントルート以外の場所にアクセスできないため、C:\server\www\dev\のようなパスは失敗します。 (上記のコードは私のlocalhostマルチサイトインストールでテストされています)。

.htaccessの書き換えにより、WP_CONFIG_DIRWP_CONFIG_URLを設定する必要はありません。これらはWordPressによって計算されます。管理ページにはhttp://dev.rarst.net/wp-adminまたはhttp://dev.rarst.net/subsite/wp-adminでアクセスできます。

5
shea