web-dev-qa-db-fra.com

Code de langue d'utilisation multisite en tant que sous-répertoire

J'ai installé WordPress dans le sous-répertoire /de et activé les fonctionnalités multisites. Le blog principal a l'URL/chemin: mysite.de/de

Maintenant, je veux ajouter un deuxième site pour la langue anglaise avec l'URL suivante: mysite.de/en

Mais après avoir ajouté le site, le sous-répertoire du site anglais a été défini comme suit: mysite.de/de/en

Des idées comment je peux obtenir ces URL de site?

mysite.de/de
mysite.de/en
mysite.de/fr
1
user49454

Voici une solution multisite appropriée:

Installez WordPress directement à la racine de votre domaine mysite.de. Après cela, configurez un multisite et choisissez l’option (Oui, sous-domaine! C’est beaucoup plus flexible et vous pouvez également l’utiliser avec des sous-répertoires).

WordPress vous demandera de mettre à jour wp-config.php et .htaccess. Au wp-config.php ajoutez les constantes suivantes (en plus de celles fournies par WP)

define( "COOKIEDOMAIN", "" );
define( "ADMIN_COOKIE_PATH", "/" );
define( 'SITECOOKIEPATH', '/' );

N'utilisez pas le code .htaccess fourni par WordPress, mais utilisez à la place celui-ci:

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]

Accédez au menu d'administration du réseau et créez deux sites, un pour chaque langue. On vous demandera l'adresse du site (sous-domaine). Il suffit d'entrer de pour le site allemand et en pour le site anglais. Une fois le site créé, modifiez-le directement. Maintenant vous pouvez éditer l'URL complète. Il suffit de le définir sur http://mysite.de/de et http://mysite.de/en. Faites cela aussi pour le site français.

Vous avez maintenant quatre sites sur votre réseau, probablement avec les identifiants suivants:

1 mysite.de/
2 mysite.de/de
3 mysite.de/en
4 mysite.de/fr

Comme vous n'avez pas besoin du premier, vous pouvez le laisser simplement vide. Vous ne l'utilisez tout simplement pas. Gérez votre contenu dans les trois autres sites.

Pour rediriger les demandes vers mysite.de/, ajoutez une autre ligne à votre .htaccess au-dessus des autres:

RedirectMatch permanent "^/$" http://mysite.de/de

Vous avez maintenant un réseau fonctionnel complet de deux sites actifs pour votre contenu.

Enfin, une recommandation personnelle: Il existe un plugin gratuit appelé Multilingual Press qui prend en charge ce concept d’une installation multilingue dans un réseau. Divulgation: J'ai déjà contribué à ce plugin avant et je travaillais pour une entreprise qui développe ce plugin.

3
David

Il serait beaucoup plus facile de maintenir le blog en utilisant un bon plugin de traduction WordPress.

WPML ( http://wpml.org ) est mon plugin préféré pour cette tâche. Si vous préférez ne rien payer , QTranslate est également une bonne option.

Les deux plugins vous permettent d'avoir des sous-domaines (en.mysite.de) ou des dossiers de langues (mysite.de/en).

Bonne chance!

0
Sam