Question

Apache2 redirect domain to internal page

I have two domains pointing to a site hosted by apache2 (a.com and b.com for example). The primary domain is a.com and the website can be accessed from this domain.

However, the page a.com/test/ should redirect to b.com (not b.com/test/) to display the content from the server (as it normally would for a.com/test/) and this content should also be displayed if b.com is accessed directly.

I thought that reverse proxies might be the way to go but haven’t had any luck, I was wondering if this is possible to do within my .htaccess file (both domains are pointing to the server).

Subscribe
Share

Thanks, I’m using Wordpress so I can’t use vhosts or htaccess because I have to wait for Wordpress to sort out the permalinks. Do you know any other way to achieve this (possibly through add_rewrite_rule) in Wordpress’ functions.php)?

In this case you actually might want to look into virtual hosts, which can be used for redirecting as well as hosting multiple sites from the same Droplet. https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-14-04-lts


Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Hi, you should be able to do this through a proxy RewriteRule. When you said you’d tried that and it didn’t work, did you mean the site appeared broken or that you couldn’t get the RewriteRule to work? If the issue was that the site appeared broken, keep in mind that “b.com” in your example needs to send back HTML to the browser that is completely valid, including all URLs being valid with how it references them. If the HTML sent back when you access “b.com” uses URLs starting with “/” that use paths that only exist on “a.com”, that will result in broken URLs.

The proxy approach works great (I’ve used it before) but it does exactly what you tell it and browsers will continue to work exactly as they do. The browser doesn’t know there’s any relationship between “a.com” and “b.com”, so if the HTML on “b.com” has paths like “/img/foo.png” that actually only exist on “a.com”, you’ll get 404’s.—Of course, you may be able to solve that with more RewriteConds/RewriteRules (e.g. check if any requested file exists, if not, proxy through to a.com).