我只使用过几次PHP,所以我需要一些帮助。
我正在寻找一种方法来阅读用户正在访问的子域。
如果他们访问(任何)。mysite.com他们将被转发到myothersite.com /(任何)
这可以用PHP吗?
我无法访问https.conf
更新
显然,它是我在共享服务器上的网络,因此在将子域名转发到域名时,它会通过iframe执行此操作。
这会导致服务器uri出错,但只是将server_uri更改为http_referer并不起作用。
任何人都知道如何解决这个问题?
答案 0 :(得分:1)
解决了!
调查期间问题发生了变化,所以我不会奖励'我自己,但是把答案给了我开始问题的答案。
如何将VIA REFERRAL从一个站点上的子域重定向到其他站点子目录
这可用于将子域转发到通过iframe运行的网站。
<?PHP
$REFERRER = $_SERVER['HTTP_REFERER'];
$domain = substr($REFERRER, strpos($REFERRER, '://')+3);
$domain = substr($domain, 0, strpos($domain, '/'));
// This line will return 'en' of 'en.example.com'
$subdomain = substr($domain, 0, strpos($domain, '.'));
header("Location: https://server2.com)/'.$subdomain");
?>
哦,我发现了一个更重要的事情,确保网站在调用标题功能之前不显示任何内容,这不会起作用!
答案 1 :(得分:0)
您可以尝试使用此程序代码并使其适应您的项目
$host = explode('.', $_SERVER['HTTP_HOST']);
$subdomain = null;
if(count($host) > 2) //If it has subdomain
{
$subdomain = $host[0];
}
header('Location: http://myhost.com/'. $subdomain);
答案 2 :(得分:0)
请通过apache服务器使用virtualhosts(httpd.conf)。这是比php重定向更好的选择。
<VirtualHost *:80>
ServerName abc.example.com
Redirect / http://www.example.com
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot "/var/www/html/example_folder"
ServerName example.com
ErrorLog "logs/example.com-error_log"
CustomLog "logs/example.com-access_log" common
</VirtualHost>