Edit: Fixed an mistake in which I referred to about.html as /about/ in my HTML, but am still experiencing the same issues.
I understand that this is a duplicate of a question that has been asked many times before, but the solutions of others are not working for me. What I'm trying to do is reroute, for example, index.html to /index/ and about.html to /about/.
I tried to use @louisvno's answer here, @michael-bleigh's answer here, and @HarsH's answer here, all of which were to add the following to the .json file:
"hosting": {
"cleanUrls": true
}
(This is also the answer on Firebase's "Control .html extensions" section of their guide to configuring hosting behavior.)
However, this had no effect. In my HTML file, I tried setting the <a> tags to href="index.html, href="/index/, and href="/index", but none of these options worked and I'm not really sure if changing it from the original <a href="index.html"> was even necessary. (Is it?)
The other solution I tried was to utilize the "redirects" property, as suggested by @ken-mueller here. I removed the "clearUrls" bit and put the following in my .json file:
"hosting": {
"redirects": [ {
"source": "index.html",
"destination": "/index",
"type": 301
}, {
"source": "index.html{,/**}",
"destination": "/index",
"type": 3011
}, {
"source": "about.html",
"destination": "/calculator",
"type": 301
}, {
"source": "about.html{,/**}",
"destination": "/solutions",
"type": 301
} ]
}
(This is also the answer on Firebase's Configure redirects section of their guide to configuring hosting behavior)
This, too, had no effect. And, even when changing my HTML from <a href="about.html"> to <a href="/about/"> or <a href="/about">, it just broke the about.html page and displayed the index.html page instead.
What am I doing wrong? How can I remove the .html from the end of the URL and make sure that any time it is input in the URL, it redirects to the URL without the ending (i.e. /index/ instead of /index.html?