#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