The term you are looking for is split dns
.
You run an internal DNS server which all LAN clients use. It has the same records as your normal external DNS server, but for local systems it has the LAN ip address instead of the public one.
The downside of split DNS is problems with mobile clients - some will cache the LAN ip address while on the internal wifi, and when they switch to a public internet connection still keep trying to use it. My new cell phone seems to clear it's DNS cache when it switches connections, so this seems to be less of an issue for newer devices.
The other option is to enable NAT loopback in your router. Some just enable this by default, others have an option for it. Some call it by a different name. But basically it makes your router recognise that requests for it's public IP shouldn't go out to the internet, but to a local server.
The downside of NAT loopback is that all the traffic flows through your router. In most cases, this isn't an issue. But depending on how your network is setup and how powerful your router is, it could potentially cause problems.