Apache2:从另一个IP地址提供页面

当我尝试解释一些我想要演奏的htaccess体操时,请耐心等待。

我有这个域名: eamorr.somesite.com ,在192.168.100.100。

它按预期从我的public_html文件夹中提供页面。

现在,我想使用以下地址:

www.somesite.com/eamorr

我没有控制www.somesite.com (192.168.99.99),但是我的系统pipe理员已经允许我把.htaccess文件放在eamorr文件夹中。 在任何情况下,我都不允许将其他东西放在eamorr文件夹中,原因我不知道。

我想要发生的是这样的:

用户导航到www.somesite.com/eamorr/some_page.php

用户从eamorr.somesite.com/some_page.php (即192.168.100.100/some_page.php)提供some_page.php

我希望这是尽可能无缝 – 即当用户浏览http://www.somesite.com/eamorr/some_page.php他们得到服务some_page.php,并忘记some_page即将到来的事实从不同的服务器(192.168.100.100)

http://www.somesite.com/eamorr应始终在用户的浏览器的地址栏中,而不是http://eamorr.somesite.com – 我的老板“只是想这样”…

这可能使用.htaccess吗?

这听起来像你想要的是所谓的“反向代理”,这是Apache的mod_proxy 。 但是,您不能在.htaccess文件中设置它 – 必须在不同的上下文中完成。 也许这里的某个人知道的更好,但我不认为你所要求的只有一个.htaccess文件是可能的。

使用Apache mod_proxy指向另一台服务器。 Apache文档在这里 。

这运作良好:

 ProxyPass /blog http://blog.example.com/ ProxyPassReverse /blog http://blog.example.com/ 

但是只有在代理模块正确加载之后:

 LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so LoadModule proxy_html_module /usr/lib/apache2/modules/mod_proxy_html.so LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so 

笔记

  • 由于CloudFlare,我还必须从不同的主机名托pipe博客,而不是*.example.com
  • 我添加了Disallow: /到我的blog.example.com/robots.txt 。 就像这个search引擎不会在两个地方开始索引。 search引擎会忽略blog/robots.txt