web-dev-qa-db-fra.com

erreur 404 multisite pour le sous-répertoire

J'essaie de créer un multisite en tant que sous-répertoire et j'ai suivi les instructions de réseau jusqu'au "T". Le multisite semble être configuré correctement, les fichiers .htaccess et wp-config.php semblent corrects et j'ai pu effectuer une configuration réseau. Cependant, lorsque je vais sur ma page multisite, une erreur 404 s'affiche - Introuvable. Cela m'empêche également de me connecter au côté administrateur de ce site.

Mon site principal fonctionne toujours correctement et je peux me connecter au côté administrateur et avec l'aide d'un plugin, je peux accéder à la base de données et la manipuler. Toutes les tables nouvellement créées sont là, l'URL multisite et les options semblent toutes correctes.

J'ai vérifié que le fichier .htaccess correspond à ce qui est dans Wordpress. J'ai vérifié l'emplacement approprié de .htaccess (racine public_html) et il est accessible en écriture. Nous ne pensons pas qu'il s'agisse d'un problème permanent, comme l'a suggéré une grande partie de mes recherches.

Après des recherches approfondies, j'étais incapable de trouver une solution, toute aide est la bienvenue.

Voici mon fichier .htaccess:

<IfModule mod_rewrite.c>
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]
</IfModule>

et la fin de mon fichier de configuration:

/**
 * 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.
 */
define('WP_DEBUG', false);

/* Multisite */
define( 'WP_ALLOW_MULTISITE', true );

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'www.mybusinessconnect.com.au');
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');
1
Smiter

J'ai eu exactement le même problème.

Ma solution : a modifié le fichier/etc/Apache2/sites-enabled/000-default.conf. Il doit ressembler à:

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        <Directory />
                Options FollowSymLinks
                AllowOverride all
        </Directory>
        <Directory /var/www/>
                Options FollowSymLinks
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>

        ErrorLog ${Apache_LOG_DIR}/error.log
        CustomLog ${Apache_LOG_DIR}/access.log combined

</VirtualHost>

Ça marche!

2
sladda

J'ai rencontré le même problème - répertoire multisite wordpress - erreur 404 pour le nouveau tableau de bord et la nouvelle page de site, le site d'administration et le tableau de bord fonctionnent.

Mon problème était dans la configuration Apache - /etc/Apache2/httpd.conf. Besoin de faire 'AllowOverride All' sous la section <Directory "/Users/user1/Sites">

Et n'oubliez pas d'activer mod_rewrite dans httpd.conf:

LoadModule rewrite_module libexec/Apache2/mod_rewrite.so

Sinon, cela donne 500 erreur.

Je ne sais pas ce que ces config représentent, mais cela a résolu mon problème. J'espère que cela t'aides.

1
user2557759

J'ai eu les mêmes problèmes avec les multisites WordPress à la fois sur le serveur de développement local et sur l'emplacement distant.

Créer un autre réseau n'était pas un problème. Lorsque j'ai cliqué sur 'Tableau de bord' ou 'Visiter', le navigateur renvoie une erreur 404 (introuvable). J'ai supprimé/réinstallé un nouveau site plusieurs fois ... l'erreur persiste.

J'ai vérifié la base de données. Le wpx_ (x désigne l'id) a été ajouté.

Selon les informations que j'ai recherchées, aucun sous-répertoire ne sera ajouté par WP. Ils sont virtuels comme confirmé dans la base de données.

J'ai fait ce qui suit:

  1. Edité wp-config.php pour inclure: define ('WP_ALLOW_MULTISITE', true); activer multisite.
  2. Cliquez sur Outil -> Configuration du réseau pour installer un nouveau site
  3. Copié les informations sur wp-config.php et .htaccess dans les fichiers respectifs.
  4. Ajout d'un nouveau site en tant que sous-répertoire
  5. Vu tous les sites
  6. Cliqué sur "tableau de bord" ou sur "visite". 7 L'erreur 404 affichée.

J'ai cherché, exploré Internet et essayé les solutions. Aucun n'a travaillé. Je pense que le problème réside dans la règle de réécriture. Mais, les tables de base de données ont été créées. C'est ce qui me déconcerte.

Au rythme où j'abandonne le multisite.

Vous trouverez ci-joint des captures d'écran facilitant le dépannage: wp-config.php.png et .htaccess.png

Toute aide est grandement appréciée.

M A Sani

0
megsani

Selon le codex, ces règles htaccess sont destinées aux multisites https://codex.wordpress.org/htaccess

Subfolder Example

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]

SubDomain Example

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

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

C'est ce que j'ai utilisé sans problèmes sur un site hébergé.

0
Rick Hellewell