Как я могу легко обрабатывать перенаправления с помощью JSON в HTML / JavaScript? - PullRequest
0 голосов
/ 06 июля 2019

На моем веб-сервере есть каталог с именем /go/. На практике это будет использоваться как https://example.com/go/x, где x - это переменная, хранящаяся в файле JSON. Файл JSON можно настроить так:

{
    "stackoverflow": "https://stackoverflow.com/",
    "apple":         "https://apple.com/",
    ...
}

Я бы хотел как-нибудь проверить, проверяет ли какая-либо из этих переменных /go/x и перенаправить ли их эквивалент. На практике он будет использоваться как https://example.com/go/stackoverflow и перенаправит меня на этот сайт.

Я не хочу добавлять несколько файлов HTML в этот каталог и перенаправлять оттуда, так как я хочу внешне управлять ответами JSON. Это не имеет значения, хотя.

В настоящее время у меня еще нет решения, но я думал о сценарии JavaScript, который проверяет JSON на наличие совпадений. Я не знаю, однако, как этот сценарий будет запущен, потому что он никогда не будет вызван или вызван ничем. У меня уже есть сценарий, который можно вызвать, но я не знаю, как его вызвать, когда /go/x срочно:

import "Paths.json" as Paths;
if (window.location.pathname == "/go/") {
    const Location = JSON.parse(Paths)[window.location.href];
    window.location.replace(Location);
}

Заключение : Я бы хотел перенаправить пользователей на разные страницы в зависимости от переменной x в /go/x. Перенаправления хранятся в формате JSON. Каждый раз, когда появляется /go/, я хотел бы запустить скрипт JavaScript, чтобы проверить эту переменную и перенаправить пользователя на другую страницу без добавления разных файлов HTML для каждого перенаправления и т. Д.

1 Ответ

1 голос
/ 06 июля 2019

Вы можете настроить свой веб-сервер для обслуживания html-файла, скажем, redirect.html для /go/*.Это сохраняет путь при обработке всех путей

Затем вы можете перенаправить пользователя на основе пути.

Сценарий в redirect.html:

const data = //load data;
const redir = location.pathname.replace("/go/","");
location.href = data[redir];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...