Страница ошибки Nuxt 404 должна быть перенаправлена ​​на домашнюю страницу - PullRequest
0 голосов
/ 31 января 2019

Я ищу способ всегда перенаправлять на домашнюю страницу, когда страница не существует, используя Nuxt.Js.

Несколько дней назад у нашего поколения карт сайта возникли проблемы, и мы отправили неправильные URL, которых не существует.Консоль поиска Google показывает большое число 404, и мы хотим исправить их с помощью перенаправления 301 на домашнюю страницу.

Я пробовал это

created() {
    this.$router.push(
      this.localePath({
        name: 'index',
        query: {
          e: 'er'
        }
      })
    )
  }

, и хотя страница успешно перенаправляется на домашнюю страницу, я думаю, что Googleбудут проблемы с этим, так как страницы изначально отображаются с 404.

Я также пробовал это

  async asyncData({ redirect }) {
    return redirect(301, '/el?e=rnf')
  },

, но не работал (то же самое с fetch)

Любые идеина решение этого?

Ответы [ 3 ]

0 голосов
/ 03 февраля 2019

Лично я бы посоветовал создать страницу 404, которая обеспечивает лучший пользовательский опыт по сравнению с перенаправлением на домашнюю страницу и потенциальным замешательством в отношении того, что произошло.

Чтобы создать пользовательскую страницу ошибок, простосоздайте файл error.vue в layouts folder и обработайте его как страницу.См. официальную документацию .Мы реализовывали это много раз, и Google никогда не жаловался на это.

Тем не менее, решение gleam умное и, если оно служит цели, очень хорошо.Просто хотел указать другое решение.

0 голосов
/ 04 августа 2019

Если вам нужно предоставить пользовательские маршруты для ваших пользователей, например domain.com/, то размещение файла с именем _.vue в каталоге ~ / pages / не будет работать, потому что оно понадобится для пользовательских маршрутов..

Для максимальной гибкости используйте папку раскладок, как указано Dan

0 голосов
/ 31 января 2019

Вы можете создать 404-страницу по умолчанию в nuxt - просто поместите файл с именем _.vue в ваш ~ / pages / dir.Это ваша страница 404:)

или вы можете использовать другой способ для создания такой страницы: https://github.com/nuxt/nuxt.js/issues/1614, но я не пробовал

ТогдаДобавьте простое промежуточное программное обеспечение 404-redirect на эту страницу:

// !!! not tested this code !!!
middleware: [
  function({ redirect }) {
    return redirect(301, '/el?e=rnf')
  },
],
...