Как заставить Гэтсби перенаправить указанный URL-адрес c на внешний сайт? - PullRequest
0 голосов
/ 05 августа 2020

У меня есть сайт Gatsby, и из-за некоторых специфических требований c мне нужно перенаправить любого, кто пытается попасть по указанному c URL-пути, для которого нет страницы, на внешний сайт. Этот URL-путь не является страницей на сайте, но пользователь может захотеть ввести его из-за неподконтрольной мне документации.

Вот пример: Допустим, сайт расположен по адресу https://www.example.com. Пользователь может посетить https://www.example.com/puppies, которого не существует. Моя файловая структура не содержит файла src/pages/puppies.js. Однако при вводе этого URL-адреса мне нужно полностью перенаправить пользователя на другой сайт, например { ссылка }.

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

Этот вопрос помог мне указать правильное направление. Мне удалось заставить его работать с помощью Gatsby componentDidMount () для принудительного перенаправления, как показано ниже, используя новый файл с именем puppies.js, чтобы «поймать» путь, введенный пользователем:

// puppies.js

    import React, { Component } from 'react'
    
    class Puppies extends Component {
        componentDidMount() {
            window.location.replace("https://www.stackoverflow.com");
        }
    
        render() {
            return <div />
        }
    }
    
    export default Puppies
0 голосов
/ 05 августа 2020

Я не использовал Gatsby до такой степени, чтобы знать, что у него есть конфигурация для этого, так что кто-нибудь может меня поправить. Я бы справился с этим через хостинг-провайдера, в котором находится ваше приложение.

Например, если вы используете Netlify:

Создайте файл _redirects со следующим содержимым:

/* /index.html 200

Или

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200

Это приведет к тому, что все https://yourwebsite.com/IDontHaveThisRoute вернутся к /index.html, где загружен ваш .js.

Я привел только пример Netlify чтобы дать вам общее c представление о том, как это можно сделать с помощью выбранного вами хостинг-провайдера. Я бы посмотрел на конфигурации, которые я могу поместить в перенаправления там, где развернут мой домен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...