Недавно я установил многопользовательский блог WordPress в своем домене.
Все работает нормально, за исключением wp–admin подсайтов:
Я могу получить доступ к wp-admin дочернего сайта, но css не загружен, и когда я пытаюсь щелкнуть ссылку навигации, я получаю сообщение WordPress «Файл не найден».
Это связано с тем, что он ссылается на, например, domain.com/subsite/wp-admin/post-new.php – который не существует. (domain.com/wp-admin/post-new.php существует)
Я также думаю, что css не работает, domain.com/subsite/wp-admin/load-styles.php и load-scripts.php не могут быть найдены
Вот одна из ошибок, которые я получаю в инструментах разработчика Chrome при посещении / subsite / wp-admin
Я использую стандартный .htaccess, который вставлен повсюду:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) 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).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] # END WordPress
Думаю, ошибка должна быть здесь, верно?
Вот wp-config – на всякий случай:
<?php define('WP_ALLOW_MULTISITE', true); // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'XXX'); /** MySQL database username */ define('DB_USER', 'XXX'); /** MySQL database password */ define('DB_PASSWORD', 'XXX'); /** MySQL hostname */ define('DB_HOST', 'XXX'); /** Database Charset to use in creating database tables. */ define('DB_CHARSET', 'utf8'); /** The Database Collate type. Don't change this if in doubt. */ define('DB_COLLATE', ''); /**#@+ * Authentication Unique Keys and Salts. * * Change these to different unique phrases! * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service} * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again. * * @since 2.6.0 */ define('AUTH_KEY', XXX); define('SECURE_AUTH_KEY',XXX); define('LOGGED_IN_KEY',XXX); define('NONCE_KEY', XXX); define('AUTH_SALT', XXX); define('SECURE_AUTH_SALT', XXX); define('LOGGED_IN_SALT', XXX); define('NONCE_SALT', XXX); /**#@-*/ /** * WordPress Database Table prefix. * * You can have multiple installations in one database if you give each * a unique prefix. Only numbers, letters, and underscores please! */ $table_prefix = 'XXX'; /** * For developers: WordPress debugging mode. * * Change this to true to enable the display of notices during development. * It is strongly recommended that plugin and theme developers use WP_DEBUG * in their development environments. * * For information on other constants that can be used for debugging, * visit the Codex. * * @link https://codex.wordpress.org/Debugging_in_WordPress */ define('WP_DEBUG', false); define('MULTISITE', true); define('SUBDOMAIN_INSTALL', false); define('DOMAIN_CURRENT_SITE', 'mydomain.com'); define('PATH_CURRENT_SITE', '/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1); /* That's all, stop editing! Happy blogging. */ /** Absolute path to the WordPress directory. */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); /** Sets up WordPress vars and included files. */ require_once(ABSPATH . 'wp-settings.php'); define( 'WP_ALLOW_MULTISITE', true ); define ('FS_METHOD', 'direct'); ?>
Если вы установили WordPress Multisite, начиная с версии 3.0 до 3.4.2, у вас есть правильное содержимое файла .htaccess
.
Однако, если вы начали с более новой версии (3.5 или выше) – и я предполагаю, что вы это сделали, если вы недавно установили WordPress Multisite – ваш файл .htaccess
должен выглядеть так:
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).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L]
Я предполагаю, что вы используете Multisite в режиме подпапки, так как в вашем вопросе ваш URL-адрес имеет форму example.com/site/wp-admin
. ( Edit: Также я только заметил, что это определенно подпапка в вашем опубликованном файле wp-config.php
.)
Подробнее см. На странице Codex на .htaccess
.