【问题标题】:Subdomain forward to another subdomain without redirecting子域转发到另一个子域而不重定向
【发布时间】:2013-09-11 14:20:19
【问题描述】:

我花了很多时间尝试解决它,最后没有任何效果。

我有一个像 test.example.com 这样的临时子域和一个移动子域 m.test.example.com。每个子域都有自己的目录test(我在这里有我的脚本)和m.test。 我需要将用户从m.test.example.com 转发到test.example.com,而不重定向到test.example.com

我知道通过虚拟主机或 cpanel 很容易做到这一点,但我需要在使用 DirectAdmin 的共享主机上做到这一点(仅限用户级别)。我想到了 mod_rewrite,我也试过 PHP symlink(),但它在我的主机上被禁用了。

如何将用户从移动子域转发到非移动资源?

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    由于两个域(“test”和“m.test”)具有不同的文档根,因此您需要反向代理。这里的问题是 mod_proxy,代理模块,可能没有被你的主机加载,但你会做这样的事情:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^m\.test\.example\.com$ [NC]
    RewriteRule ^(.*)$ http://test.example.com/$1 [L,P]
    

    这些规则将位于/m.test/ 文件夹中,即m.test.example.com 子域的文档根目录中。 P 标志告诉 mod_rewrite 将请求交给 mod_proxy 以反向代理而不是重定向浏览器。

    【讨论】:

    • 它有效,但我有一个问题,$_SERVER["HTTP_HOST"] 总是返回 test.example.com
    • @daroPL 那是因为它被反向代理了。如果两个子域具有不同的文档根,则没有其他方法可以通过 htaccess 文件进行操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 1970-01-01
    • 2019-01-12
    • 2013-08-04
    • 2014-01-18
    • 2015-01-05
    相关资源
    最近更新 更多