При настройке проекта хостинга 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
}
]
Я также пробовал вышефрагмент с папкой игнорирования, добавленной к правилам игнорирования, и это тоже не сработало.
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**",
"**/ignore/**"
],
...
}
Я хотел бы иметь возможность написать шаблон glob для захвата любого пути, который не совпадает с путем игнорирования, ииспользуйте это в перенаправлении, что-то вроде:
"source": "/!(ignore)**path**,
"destination: "https://www.example.com/**path**",
"type": 302