2016-10-10

I'm working with a home server and my ISP blocks port 80. I have DD-WRT set up on my router so that I can redirect other open ports (like 443 and 8080) to the server. I also have dynamic DNS set up on an automatically updating A record via NameCheap.

My end goal is this: a user goes to http:/dev.homeserver.com and automatically gets https://dev.homeserver.com with no custom ports in the address bar. I want to autoredirect to https because I feel encryption is important and https should be everywhere. Furthermore, I'd like to be able to redirect http:/homeserver.com to https://homeserver.com and all requests such as http:/homserver.com/blah/this/index.php? to be auto redirected to https://homserver.com/blah/this/index.php?, etc.

The problem is that in order for me to send users to the server via our domain (say, dev.homeserver.com), I need to redirect them to a port other than 80 to get to the server. Right now I'm doing this via a name cheap URL redirect that takes host dev and redirects it to http:/dev.homeserver.com:8080. This works, but the problem is the port shows up in the URL, which I'd like to avoid. I can enable URL masking, but then the address bar always says dev.homeserver.com and that can be annoying since myself and my colleagues are usually copying out of the addy bar when testing PHP and coding.

I had initially set my server up to only accept https:// requests but have since decided that it's less confusing to just have an http autoredirect to https. Can I do this on the NameCheap side so that any http requests automatically redirect to https://? It will let me set https:// in the field but it doesn't seem to work.

If not, is it possible to set http:/dev.homeserver.com to auto redirect to http:/dev.homeserver.com:8080 or :443 and have it be masked initially to only display dev.homeserver.com and then do a frame break in apache server-side + a mod rewrite so that it then redirects to https:/dev.homeserver.com? I would like to do this for multiple subdomains as well.

I see no-ip has a way of doing this with what they call a Port 80 Redirect: but it just looks like it forwards to an IP and loses the dns name in the address bar as soon as the site responds.

I also have a VPS with port 80 open and have read a bit on ProxyPass but I want to avoid creating dependencies between the home server and VPS. Still, I'd like to hear if this could be an option if it's the only way forward.

(had to get rid of one / in links since it won't let me post urls with my current reputation)

Show more