Reputation: 25803
According to Firebase Hosting docs, I should be able to set custom headers on responses received from the server. I am trying to set the X-Frame-Options
header on all html files, but the server simply does not want to send this header! Here's my firebase.json file, please let me know if I am doing anything wrong:
{
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"headers": [
{
"source": "**/*.html",
"headers": [
{
"key": "X-Frame-Options",
"value": "SAMEORIGIN"
}
]
}
]
}
}
Upvotes: 4
Views: 2045
Reputation: 321
I just went through a lot of trial and error on the same issue. I noticed a small little section in the firebase documentation:
A source value that Hosting matches against the original request path, regardless of any rewrite rules.
If your setup is like mine, you probably have this in your firebase.json file:
"rewrites": [{
"source": "**",
"destination": "/index.html"
}]
However, while you may be returning index.html, the original request path was simply "/", so on your headers section use this:
"source": "/"
This is what worked for me.
Upvotes: 6
Reputation: 25803
After lot of trial and error, I found the issue. All this while I was trying to load index.html using https://my-project.firebaseapp.com
- this apparently does not trigger the header. I had to explicitly add /index.html
at the end of the URL to make it work: https://my-project.firebaseapp.com/index.html
. I should not have to do this, but that was the problem. So the question still remains - how do you get the firebase configuration to match an implied index.html
.
Upvotes: 2