Php 将任意子域重定向到带有$\u get info的页面
我有一个站点正在运行,并且已经获得另一个域,需要将任何访问重定向到Php 将任意子域重定向到带有$\u get info的页面,php,.htaccess,redirect,subdomain,Php,.htaccess,Redirect,Subdomain,我有一个站点正在运行,并且已经获得另一个域,需要将任何访问重定向到exampleA.com或其任何子域,在页面中,我可以将请求的页面的子域检查到站点的动态列表中,如果它与exampleB.com上的子域相匹配,则将其发送到exampleB.com上的主站点。exampleA.com上根本没有站点,它只是主域的一个较短版本。主站点是wordpress站点 我拥有的。 我有exampleA.com和exampleB.com,其中exampleB.com有子域 我需要什么。 将*.exampleA.c
exampleA.com
或其任何子域,在页面中,我可以将请求的页面的子域检查到站点的动态列表中,如果它与exampleB.com
上的子域相匹配,则将其发送到exampleB.com
上的主站点。exampleA.com
上根本没有站点,它只是主域的一个较短版本。主站点是wordpress站点
我拥有的。
我有exampleA.com
和exampleB.com
,其中exampleB.com
有子域
我需要什么。
将*.exampleA.com
重定向到exampleB.com/somePage/?from=*
在它到达
exampleB.com/somePage/?from=*
之后,我可以检查$\u获取信息。但我不知道如何将任意子域设置为$\u GET
当您将域名与列表(可以从$\u服务器['HTTP\u HOST']]
获取)匹配时,您可以使用PHP的头('Location:')
动态重定向用户。您需要一些东西:
a) exampleA.com的DNS设置必须配置为允许通配符子域:
*.exampleA.com. 3600 IN A x.x.x.x
b) com的web服务器配置必须允许通配符主机匹配
<VirtualHost ...>
ServerName exampleA.com
ServerAlias *.exampleA.com
</VirtualHost
ServerName exampleA.com
ServerAlias*.exampleA.com
少了什么?问题?对不起,我还不想发布它,对不起,你有权访问exampleA.com的httpd.conf吗?是的,我在两个站点上都有根。要做到这一点,我不需要知道子域并在IIS中设置它。我真正需要的是*.exampleA.com
到exampleB.com/somePage/?from=*
是的,当你检查$\u服务器['HTTP\u主机']
时,它会给你subdomain.exampleA.com,你可以从中获得子域并使用“header('Location:…”)重定向。所以如果exampleB.com
有一个通配符(它确实有)sub1.exampleA.com
(以及所有其他)的默认值将是exampleA.com
的默认值?我想我从一开始就问错了问题,我不知道默认页面会显示在空的子域上。谢谢
<?php
$requested_host = $_SERVER['HTTP_HOST'];
$parts = explode('.', $requested_host);
array_pop($parts); // com
array_pop($parts); // exampleA
$requested_subhost = implode('.', $parts);
header("Location: http://exampleB.com/?from=$requested_subhost");