Как в Nuxt сделать редирект на https://www.?

Для того, чтобы выполнить редирект на https://www. в Nuxt.js, вы можете использовать middleware, который будет перенаправлять пользователей на соответствующий URL. Вот как это можно сделать:

1. Создайте новый файл в директории middleware вашего Nuxt.js проекта (если отсутствует, вы можете создать его сами). Назовите файл, например, force-https.js.

2. В файле force-https.js добавьте следующий код:

export default function ({ req, redirect }) {
  // Проверяем, что запрос происходит не с локального хоста
  if (process.server && !req.headers.host.includes('localhost')) {
    // Проверяем, что текущий протокол не HTTPS и не www.
    if (req.headers['x-forwarded-proto'] !== 'https' || !req.headers.host.includes('www.')) {
      // Строим новый URL, добавляя https и www.
      const secureUrl = `https://www.${req.headers.host}${req.url}`;
      // Выполняем редирект
      return redirect(301, secureUrl);
    }
  }
}

3. Откройте файл nuxt.config.js в корне вашего проекта.

4. Добавьте middleware в router в конфигурации:

export default {
  // ...
  router: {
    middleware: 'force-https'
  },
  // ...
}

5. Перезапустите ваш сервер разработки Nuxt.js или пересоберите проект, если вы запускаете его в production-режиме.

Теперь, когда пользователь попытается зайти на ваш сайт через протокол HTTP или без www., они будут автоматически перенаправлены на https://www.your-domain.com.

Обратите внимание, что этот код работает только в случае, если ваш проект развернут на сервере, который поддерживает проксирование, и использует заголовки x-forwarded-proto и host. Если вы разрабатываете на локальном компьютере, то редиректа на HTTPS не будет, так как этот middleware не предназначен для локальной разработки.