web-dev-qa-db-ja.com

マルチサイト - ルート「/」サイトを削除する方法?

WPを3つの言語でインストールしたいです:en、ro、ru

mysite.com/en
mysite.com/ro
mysite.com/ru

よくわかりませんでしたが、WPをルートフォルダにインストールしました。

今、私は訪問者をデフォルトの言語にリダイレクトする必要があります。 「en」と言います。 //en//ro//ru/の4つのサイトは実際には必要ありませんが、3つです。

状況は実はこんな感じです

"/"サイトを "削除"することはできません。

3
serhio

私はルートサイトで言語へのリダイレクトのために小さなテーマを使います。ユーザーの言語を見つけてこの言語のブログにリダイレクトするための非常に小さなテーマです。

<?php
// Browsersprache ermitteln
function lang_get_from_browser($allowed_languages, $default_language, $lang_variable = NULL, $strict_mode = TRUE) {
    // $_SERVER['HTTP_ACCEPT_LANGUAGE'] verwenden, wenn keine Sprachvariable mitgegeben wurde
    if ( NULL === $lang_variable )
        $lang_variable = $_SERVER['HTTP_ACCEPT_LANGUAGE'];

    // wurde irgendwelche Information mitgeschickt?
    if ( empty($lang_variable) ) 
        return $default_language;

    // Den Header auftrennen
    $accepted_languages = preg_split('/,\s*/', $lang_variable);

    // Die Standardwerte einstellen
    $current_lang = $default_language;
    $current_q    = 0;
    // Nun alle mitgegebenen Sprachen abarbeiten
    foreach ($accepted_languages as $accepted_language) {
        // Alle Infos dieser Sprache rausholen
        $res = preg_match(
            '/^([a-z]{1,8}(?:-[a-z]{1,8})*)'.
            '(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i', 
            $accepted_language, 
            $matches
        );

        if (!$res)
            continue;

        // Sprachcode holen und dann sofort in die Einzelteile trennen
        $lang_code = explode('-', $matches[1]);

        // Wurde eine Qualität mitgegeben?
        if ( isset($matches[2]) )
            $lang_quality = (float)$matches[2];
        else
            $lang_quality = 1.0;

        // Bis der Sprachcode leer ist...
        while (count ($lang_code)) {
            // mal sehen, ob der Sprachcode angeboten wird
            if (in_array ( strtolower( join('-', $lang_code) ), $allowed_languages) ) {
                // Qualität anschauen
                if ($lang_quality > $current_q) {
                    $current_lang = strtolower( join('-', $lang_code) );
                    $current_q = $lang_quality;
                    break;
                }
            }
            // Wenn wir im strengen Modus sind, die Sprache nicht versuchen zu minimalisieren
            if ($strict_mode)
                break;

            // den rechtesten Teil des Sprachcodes abschneiden
            array_pop($lang_code);
        }
    }

    return $current_lang;
}

$allowed_langs = array('en', 'de');
$lang = lang_get_from_browser($allowed_langs, 'en', NULL, FALSE);

if ( 'de' === $lang )
    Header("Location: http://wpbasis.de/readme-de_DE.php");
else
    Header("Location: http://wpbasis.de/readme-en_US.php");
exit();
?>
6
bueltge

そのままにしてリダイレクトを配置するだけですか?

2
edelwater