私はwordpress guide に従ってマルチサイトをインストールしました。私のメインサイト(mydomain.com)はうまく機能します、私のマルチサイトはサブディレクトリすなわち(mydomain.com/test/)に基づいています、しかしそれはまったくロードしません(404エラー)。もっと詳しく
$ cat .htaccess
RewriteEngine On
RewriteBase /wordpress/
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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
$ cat wp-config.php
/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'mydomain.com');
define('PATH_CURRENT_SITE', '/wordpress/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
/* That's all, stop editing! Happy blogging. */
あなたがそれを修正するのを助けることができればそれは素晴らしいでしょう。ありがとう
私はNginxとApacheの両方がインストールされた状態で同じエラーに直面しました。 Nginxはリバースプロキシとして機能し、静的ファイルを提供します。このため、サーバディレクティブ内に次のコードを挿入する必要があります。
if ( !-e $request_filename ) {
rewrite /wp-admin$ $scheme://$Host$uri/ permanent;
rewrite ^(/[^/]+)?(/wp-.*) $2 last;
rewrite ^(/[^/]+)?(/.*\.php) $2 last;
}
静的ファイルのリバースプロキシとしてNginxを使用する場合は、上記のコードを場所の内側に配置する必要があります。すなわち:
location ~ ^.+\.(jpg|jpeg|gif|png|webp|ico|css|Zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|JPG|JPEG|GIF|PNG|ICO|CSS|Zip|TGZ|GZ|RAR|BZ2|DOC|XLS|EXE|PDF|PPT|TXT|TAR|WAV|BMP|RTF|JS) {
if ( !-e $request_filename ) {
rewrite /wp-admin$ $scheme://$Host$uri/ permanent;
rewrite ^(/[^/]+)?(/wp-.*) $2 last;
rewrite ^(/[^/]+)?(/.*\.php) $2 last;
}
Nginx + php-fpmを実行する場合(Apacheを使用せず、さらにmod_rewrite
を使用してURLを書き換える必要がある場合)、コードをサーバーディレクティブの内側に配置する必要があります。