I'll start by assuming the following:
- You have a web server running on the development system (not just static HTML on a local file system).
- That web server is listening on an external interface (vs. loopback only).
- There is a public-facing Apache web server that you can configure.
- That public-facing web server is able to establish a TCP connection with your development system.
If all of the above are true (or if you can make them true), you should be able to use a reverse proxy.
To avoid URL rewriting, I usually set up a DNS record pointing to the public web server with a unique name (dev.example.com), then set up a virtual hosted reverse proxy. Here's a minimal Apache config for dev.example.com pointing to an internal development system with the IP address of 10.0.0.42:
<VirtualHost *:80>
ServerAdmin me@example.com
ServerName dev.example.com
ServerAlias dev
DefaultType none
ProxyPass / http://10.0.0.42/
ProxyPassReverse / http://10.0.0.42/
</VirtualHost>
You'll need to make sure mod_proxy is enabled. Refer to Apache's mod_proxy documentation for more details.
Is your development server visible from outside world? If yes, then just give the IP address with the specific file/folder that you wanted to show off. – Darius – 2014-01-11T01:15:16.650
No, it's not... – dcolumbus – 2014-01-11T01:15:54.023
If you have a main website, simply create another folder that has no clickable link to it, and push your work from the dev server to the main site. So for example www.mysite.com/client1/ (and give that URL to your client) – Darius – 2014-01-11T01:17:02.453
There is no best practice, you just need to put the site on a public IP. What can you tell us about the site - is it server side, php, or static html? – Paul – 2014-01-11T01:24:17.630