我在OpenShift上托管了一个网站,其网址为https://myproject.myname-rhcloud.com/myapp。我通过git部署,它工作正常,但URL不容易记住。
然后我买了一个域名(比如http://www.first-last.fr),有一个有限的Apache托管,允许我在那里部署我自己的.htaccess
。
我尝试从注册商处进行重定向,但这最终出现在一个隐藏页面标题的HTML框架中:标题始终显示根网址,即使在网站的子文件夹中也是如此,所以我看到{ {3}}即使我正在访问http://www.first-last.fr。
我想要的是通过我的新网址(http://www.first-last.fr/myapp/glossary)访问真实网站(https://myproject.myname-rhcloud.com/myapp),但有以下限制:
理想情况下,这不需要触摸原始网站。
我检查了很多类似的问题,但我没有找到关于这个具体要求的明确答案(我很乐意错,如果有的话请告诉我好的链接)!
我还尝试进行网址重写,但这不成功,当我输入http://www.first-last.fr/myapp/glossary我的资源管理器显示http://www.first-last.fr/myapp时。
编辑:我试过mod_proxy,就像杰克建议的那样。这是我的.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/
我也试过更简单的版本:
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/
但我在Apache日志中遇到了同样的错误:ProxyRequests not allowed here
。你有什么想法吗?
答案 0 :(得分:1)
看看mod_proxy
。例如,你可以做这样的事情。这将在你的短域名的apache conf vhost配置中。查看文档以获取更多信息。
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
答案 1 :(得分:0)
一位朋友帮助我解决了这个问题:
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]
这样可以使http://www.first-last.fr/myapp/到http://myproject-myname.rhcloud.com/拥有正确的代理。但要注意,http://www.first-last.fr/myapp(不包括斜杠)不能作为代理工作并转换为" inner"站点。