使用.htaccess重写子域

时间:2016-11-04 00:48:39

标签: apache .htaccess ubuntu

我的主域名是subdomain.domain.tld,我想重写从subdomain1.domain.tld到第一个的所有流量。这意味着如果某人访问subdomain1.domain.tld/whatever.php,他实际上会访问subdomain.domain.tld/whatever.php,但是,他仍然会在浏览器的导航栏中显示subdomain1

我做了一些研究,但我找不到太有希望的东西。

1 个答案:

答案 0 :(得分:0)

你不需要为此重写,事实上在不同的主机之间不可能进行内部重写......

假设两个“子域”(实际上是主机名)都由同一个http服务器提供服务,您可以为两个主机配置相同的DocumentRoot。这样他们就可以提供完全相同的文件系统,这显然意味着将调用相同的脚本。

如果您只是为您的虚拟主机使用ServerAlias命令,也许您可​​以更轻松地离开。如果您不需要两台主机的单独配置,这显然是可能的。

只需查看apache http服务器的文档即可。这是解释,并提供了很好的例子: https://httpd.apache.org/docs/2.4/vhosts/examples.html

如果这两台主机由同一个http服务器提供服务,您可以使用内部代理设置:subdomain1.domain.tld充当subdomain.domain.tld的前端代理,因此它只是中继所有传入的请求以及传出的响应。这可以通过apaches代理模块提供的ProxyPassProxyPassReverse规则的组合轻松完成:https://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypassreverse

如果两个http服务器在不同的IP地址或甚至完全独立的系统上运行,甚至可以使用此设置。