web-dev-qa-db-fra.com

Nouveaux sites multisites non trouvés (404), le site principal fonctionne toujours

J'ai suivi wordpress guide pour installer multisite. Mon site principal (mydomain.com) fonctionne bien, mon multisite est basé sur le sous-répertoire i.e. (mydomain.com/test/), mais il ne se charge pas du tout (erreur 404). plus de détails

 $ 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. */

Ce sera génial si vous pouvez aider à résoudre ce problème. Merci

1
kuruvi

J'ai rencontré la même erreur avec Nginx et Apache installés. Nginx fonctionne comme un proxy inverse et sert des fichiers statiques. Pour cette raison, vous devez insérer le code suivant dans la directive server:

if ( !-e $request_filename ) {
    rewrite /wp-admin$ $scheme://$Host$uri/ permanent;  
    rewrite ^(/[^/]+)?(/wp-.*) $2 last;                     
    rewrite ^(/[^/]+)?(/.*\.php) $2 last;                   
}

Si vous utilisez Nginx comme proxy inverse pour les fichiers statiques, vous devez placer le code ci-dessus dans un emplacement. c'est à dire:

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;
}

Si vous exécutez nginx + php-fpm (pas d'Apache et réécriture d'URL supplémentaire avec mod_rewrite impliqué), vous devez mettre le code dans la directive server.

2
cardy