В конфигурации хостинга firebase, как мне написать правило для перенаправления всех источников, кроме одного, при захвате сегмента URL?

#firebase #redirect #firebase-hosting

#firebase #перенаправление #firebase-hosting

Вопрос:

Настраивая проект хостинга firebase, я хотел бы перенаправлять все запросы, кроме одного, на другой домен и сохранять сегмент URL в перенаправлении. Например, example.com/page должно перенаправляться на www.example.com/page , в то время как все, начинающееся с example.com/ignore , не должно перенаправляться.

В firebase.json я написал это правило для перенаправления любого запроса, не указанного в пути игнорирования:

 "redirects": [
      {
        "source": "/!(ignore)",
        "destination": "https://www.example.com/",
        "type": 302
      }
    ]
  

Это перенаправление работает, однако я хочу захватить любые сегменты URL в перенаправлении. Я пытаюсь следовать примеру из их документов, где :post* указан сегмент URL, который я хочу сохранить, но я не знаю, как записать его в правилах перенаправления.

 "hosting": {
  // ...

  "redirects": [ {
    "source": "/blog/:post*",  // captures the entire URL segment beginning at "post"
    "destination": "https://blog.myapp.com/:post", // includes the entire URL segment identified and captured by the "source" value
    "type": 301
  }
  

Я также попробовал следующее, которое работает для захвата сегмента URL при перенаправлении, но также перенаправляет мой игнорируемый путь.

 "redirects": [
      {
        "source": "/:path*",
        "destination": "https://www.example.com/:path",
        "type": 302
      }
    ]
  

Я также пробовал приведенный выше фрагмент с папкой ignore, добавленной в правила игнорирования, и это тоже не сработало.

 {
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**",
      "**/ignore/**"
    ],
...
}
  

Я хотел бы иметь возможность написать шаблон glob для захвата любого пути, который не соответствует пути игнорирования, и использовать его в перенаправлении, что-то вроде:

 "source": "/!(ignore)**path**,
"destination: "https://www.example.com/**path**",
"type": 302