Best way to forward web traffic to portal page?

Hotspot is more if you want a “splash screen” when users connect to a network, but I’m not sure that’s the need here. While hotspot does redirect HTTP, it’s not a generic mechanism. But hotspot is something different & specific to, well, Wi-Fi.

If you want to receive HTTP request on a Mikrotik, and then send them somewhere else…

One option is, as @anav points out, you can do port forwarding in firewall is one way. If you want to send all web traffic received to another web server, this works. But /ip/firewall/… methods do not look at the HTTP headers, so it’s all traffic. And it one-to-one.

Another option be using a /container that does the http/s “forwarding”, if you have an ARM64/X86 RouterOS. This let you look at host, headers, path, etc to do any redirection. And often these containers will do SSL certs automatically (which is really handy). There are many containers to do this, for example NGNIX, caddyserver and traefik proxy. I use traefik on a few RB1100 to deal with ACME and proxying CORS to REST, but it’s pretty flexible to do any forwarding. I should do a better write-up, but I wrote up how to use traefik with /container here: http://forum.mikrotik.com/t/container-traefik-on-rb5009/165849/1

As usual, many way to do this, but often the specific problem leads to which one is right. There is no generic answer here.