I changed FreePBX Web Address in advanced settings to http://hostname/voice
That fixed the problem.
However the User Panel navigation button on top still points to hostname/recordings which does not exist. hostname/voice/recordings does not exist either.
I tried reinstall recording module but that didn’t change anything
I am really confused. I did a packet capture. When I accessed http://hostname/voice the first GET I got a 301 redirect to /voice (itself), then the second GET got a 302 to /admin.
I noticed the 302 was a php redirect by index.php so I changed the path from /admin to /voice/admin and it fixed the problem. Which config file owns this file? Or this file is only touched during instillation? What caused the first 301 redirect?