Как перенаправить разные языки с экспресс для Google - PullRequest
0 голосов
/ 13 июня 2019

Я запускаю веб-приложение на двух языках. Это работает нормально, но Google не индексирует мои языковые каталоги. Google просто показывает domain.com вместо domain.com/en/ или domain.com/de/.

Я работаю с редиректами 301 с использованием Express js, но я не уверен, почему Google не индексирует их.

app.get('/', function (req, res) {
    const language = req.acceptsLanguages()[0].slice(0, 2).toLowerCase();
    if (language === 'de') {
        res.redirect(301, '/de/');
    } else if (language === 'en') {
        res.redirect(301, '/en/');
    } else {
        res.redirect(301, '/en/');
    }
});

// provide german
app.get('/de/', function (req, res) {
    res.status(200).sendFile(path.join(__dirname, '/views/de/index.html'));
});

// provide english
app.get('/en/', function (req, res) {
    res.status(200).sendFile(path.join(__dirname, '/views/en/index.html'));
});

Таким образом, перенаправление работает нормально, но индексация не выполняется. Как мне изменить код?

1 Ответ

0 голосов
/ 13 июня 2019

Сканер Google будет получать доступ только к тем страницам, которые доступны по ссылкам. Различные языковые страницы скрыты для сканера логикой приложения.

Однако я бы порекомендовал вам использовать существующий модуль интернационализации для NodeJS, такой как i18n: https://www.npmjs.com/package/i18n.

...