请耐心听我解释一些我想执行的 htaccess 操作。
我有这个域名:eamorr.somesite.com
,位于 192.168.100.100。
它public_html
按预期提供来自我的文件夹的页面。
现在,我想使用以下地址:
www.somesite.com/eamorr
我无法控制www.somesite.com
(192.168.99.99),但我的系统管理员允许我将.htaccess
文件放入该文件夹中。出于我不知道的原因,eamorr
在任何情况下我都不允许将任何其他内容放入该文件夹中。eamorr
我想要发生的事情是这样的:
用户导航至www.somesite.com/eamorr/some_page.php
用户信息来自some_page.php
(eamorr.somesite.com/some_page.php
即 192.168.100.100/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
?
答案1
听起来你想要的是所谓的“反向代理”,这是 Apache 的工作mod_proxy
。但是,您无法在文件中进行设置.htaccess
——必须在不同的上下文中进行设置。也许这里有人知道得更多,但我认为.htaccess
仅使用单个文件无法实现您的要求。
答案2
使用 Apachemod_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,我还必须从不同的主机名托管博客,而不是
*.example.com
。 - 我
Disallow: /
在我的 中添加了blog.example.com/robots.txt
。这样搜索引擎就不会在两个位置开始索引。搜索引擎只会忽略blog/robots.txt
。