Question

I have a site hosted on OpenShift, with a URL like https://myproject.myname-rhcloud.com/myapp. I deploy there via git, it works fine, but the URL is not exactly easy to remember.

Then I bought a domain name (say, http://www.first-last.fr), with a limited Apache hosting which allows me to deploy my own .htaccess there.

I tried to do a redirect from my registrar, but this ended up in a HTML frame which hid the title of the page: the title always showed the root URL, even in sub-folders of the site, so I saw http://www.first-last.fr even if I was visiting http://www.first-last.fr/myapp/glossary.

What I would like is access the real site (https://myproject.myname-rhcloud.com/myapp) via my new URL (http://www.first-last.fr), with the following constraints :

And this ideally without having to touch the original site.

I checked many similar questions of SO but I did not find a definitive answer on this specific request (I would be happy to be wrong, if so please show me the good links) !

I also tried to do URL rewriting but this was not successful, when I type http://www.first-last.fr/myapp my explorer shows https://myproject.myname-rhcloud.com/myapp.

EDIT: I tried mod_proxy, as Jack suggested. Here is my .htaccess:

SetEnv PHP_VER 5_TEST
SetEnv REGISTER_GLOBALS 0

Options +FollowSymLinks -MultiViews

ProxyPreserveHost On

# Turn mod_rewrite on
RewriteEngine On
# RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?first-last\.fr$ [NC]
RewriteRule ^ https://myproject.myname.rhcloud.com%{REQUEST_URI} [L,P]

# ProxyPass / https://myproject.myname.rhcloud.com/
ProxyPassReverse / https://myproject.myname.rhcloud.com/

I also tried with a simpler version:

SetEnv PHP_VER 5_TEST
SetEnv REGISTER_GLOBALS 0

Options +FollowSymLinks -MultiViews

ProxyPreserveHost On
ProxyPass / https://myproject.myname.rhcloud.com/
ProxyPassReverse / https://myproject.myname.rhcloud.com/

but I have the same error in my Apache logs: ProxyRequests not allowed here. Do you have an idea ?

Was it helpful?

Solution 2

A friend helped me to solve this problem:

SetEnv PHP_VER 5_TEST
SetEnv REGISTER_GLOBALS 0

Options +FollowSymLinks -MultiViews

# Turn mod_rewrite on
RewriteEngine On
RewriteRule ^/?(.*)$ http://myproject-myname.rhcloud.com/$1 [L,P]

This allows to have correct proxy to http://www.first-last.fr/myapp/ to http://myproject-myname.rhcloud.com/. Beware though, http://www.first-last.fr/myapp (without ending slash) does not work as a proxy and is converted to the "inner" site.

OTHER TIPS

Have a look at mod_proxy. For example you might be able to do something like this. This would go in your apache conf vhost config of your short domain name. Check out the docs for more info.

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

SSLProxyEngine On
ProxyPass / https://myproject.myname-rhcloud.com/myapp
ProxyPassReverse / https://myproject.myname-rhcloud.com/myapp
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top