web-dev-qa-db-ja.com

サブサイトとしてマルチサイト使用言語コード

WordPressを/deというサブディレクトリにインストールし、マルチサイト機能を有効にしました。メインブログのURL /パスはmysite.de/deです。

今度は私は次のurlの英語のための第2場所を加えたいと思う:mysite.de/en

しかし、私がサイトを追加した後、英語サイトのサブディレクトリは次のように設定されました:mysite.de/de/en

これらのサイトのURLを取得する方法を教えてください。

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

これが適切なマルチサイトソリューションです。

ドメインmysite.deのルートに直接WordPress をインストールしてください。その後、マルチサイトをセットアップして subdomain オプションを選択しました(はい、サブドメインです。これははるかに柔軟で、サブディレクトリでも使用できます)。

WordPressはwp-config.php.htaccessを更新するようにあなたに頼みます。 wp-config.phpに(WPによって提供されるものに加えて)次の定数を追加してください

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

WordPressで提供されている.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]

ネットワーク管理メニューに移動して、言語ごとに1つずつ、2つのサイトを作成します。サイトアドレス(サブドメイン)を尋ねられます。ドイツ語のサイトにはdeを、英語のサイトにはenを入力するだけです。サイトが作成されたら、それを直接編集します。 これでURL全体を編集できます。 http://mysite.de/dehttp://mysite.de/enに設定するだけです。フランスのサイトでも同様です。

これで、ネットワーク内に4つのサイトがあり、おそらく以下のIDがあります。

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

最初のものは必要ないので、空のままにしておくことができます。あなたはそれを使わないだけです。他のサイトであなたのコンテンツを管理してください。

リクエストをmysite.de/にリダイレクトするには、.htaccessの上に他の行を追加します。

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

これで、コンテンツ用に2つのアクティブサイトの完全機能ネットワークができました。

最後に個人的な推奨事項:ネットワークでの多言語設定のこの概念をサポートする Multilingual Press という無料のプラグインがあります。開示:私は以前このプラグインに貢献し、このプラグインを開発している会社で働いていました。

3
David

良いWordPressの翻訳プラグインを使ってブログを管理するほうがはるかに簡単です。

WPML( http://wpml.org )が私のお気に入りのプラグインです。あなたが何も払わないことを好むならば QTranslate も良い選択肢です。

どちらのプラグインでも、サブドメイン(en.mysite.de)または言語フォルダ(mysite.de/en)を持つことができます。

頑張って!

0
Sam