This is a lot. I have done a rewrite approach before. It is only one option, but if you're committed, it's probably the one that has the best chance to preserve your sanity. It can work, if you're clever about it.
The goal is to slowly build up a parallel application which will seamlessly inherit an increasing number of tasks from the legacy system.
What I would start with, is building a compatibility layer. For example: the new code base should be able to make use of the old application's sessions. This way, you could rewrite a single page on the new system and add a reverse proxy one page at a time. Eventually, every page will be served by the new application and you can retire the old.
I would stick with the language but pick up something more capable, ie. Laravel. This makes it easy to copy over legacy code as needed.
The goal is to slowly build up a parallel application which will seamlessly inherit an increasing number of tasks from the legacy system.
What I would start with, is building a compatibility layer. For example: the new code base should be able to make use of the old application's sessions. This way, you could rewrite a single page on the new system and add a reverse proxy one page at a time. Eventually, every page will be served by the new application and you can retire the old.
I would stick with the language but pick up something more capable, ie. Laravel. This makes it easy to copy over legacy code as needed.
Godspeed.