我确信有人问过同样的问题,serverfault
但我只是不知道要寻找什么。
我学校有两个来自不同主机的子域名。例如。
One is: tr33house.domain1.school.edu
the other: tr33house.domain2.school.edu
域名one
不支持 python 站点,所以我必须将站点放在域中two
,并且需要将所有用户转发到域two
,但我想要某种 url 屏蔽,以便用户在重定向到域二时可以在 url 上看到域一的名称。
我可以访问两台机器的.htaccess
文件。
谢谢!
答案1
如果为 domain1 服务器启用了 mod_proxy,则可以将该P
标志与 mod_rewrite 一起使用:
RewriteRule ^path/that/uses/python/(.*)$ http://tr33house.domain2.school.edu/path/that/has/python/$1 [L,P]
如果有重定向和/或 cookie 需要重写其位置、路径或域,您可以使用mod_proxy 的反向指令:
ProxyPassReverse /path/that/uses/python http://tr33house.domain2.school.edu/path/that/has/python
答案2
是否可以将 DNS 条目也指向这个新位置?
如果是这样,您可以这样做,然后在域一所在的主机上的 vhost.conf 中添加一行:
ServerAlias tr33house.domain1.school.edu
Apache 可以在一个 vhost 中处理不同的域名。用户看到的 URL 就是他访问网站的 URL。
请注意。Google 不喜欢在两个不同的 URL 下找到完全相同的内容。
重写的成本肯定会比这更昂贵。