Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将任意子域重定向到带有$\u get info的页面_Php_.htaccess_Redirect_Subdomain - Fatal编程技术网

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");