重定向到 WWW,通配符 DNS 除外

Redirect to WWW except for Wildcard DNS

所以我正在开发一个与 Guild Hosting & Clan Hosting 站点非常相似的 Web 应用程序。但是我遇到了 HTACCESS 和 PHP.

的问题

这是我的 .HTACCESS 文件:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{REQUEST_URI} !index\.php
RewriteCond %{HTTP_HOST} ^(.+?)\.example\.com$
RewriteRule .* /index.php?site=%1 [L]

RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/?site= [L,R=301]

这是我的 INDEX.PHP 文件:

<?php
$site = explode(".", $_SERVER["HTTP_HOST"]);

if(sizeof($site === 3) && $site[0] == "www") {
    echo "Welcome to MySite!";
} else {
    if(isset($_GET["site"])) {
        echo "Welcome to " . $_GET["site"] . "!";
    } else {
        header("Location: http://www.example.com/");
    }
}
?>

我想让代码做的是,如果他们转到主站点,它只会回显该基本消息,但我不断收到

http://www.example.com/?site=

在我的域末尾,当我不想要任何东西时,我也希望能够做到这一点,以便该站点重定向到指定站点的子域,例如

http://www.example.com/?site=test => http://test.example.com or http://www.test.example.com

然后我希望 htaccess 文件从

获取信息
http://www.example.com/?site=test/

就像 htaccess 目前所做的那样,有人知道我如何在 HTACESS 和 PHP 中实现所有这些吗?

所以我厌倦了等待答案,所以我弄乱了我的 .HTACESS 文件并且它有效! 这是我的 .htaccess 文件:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{REQUEST_URI} !index\.php
RewriteCond %{HTTP_HOST} ^(.+?)\.example.com$
RewriteRule .* /index.php?site=%1 [L]

并且 index.php 文件管理重定向到 WWW 站点:

<?php
$site = explode(".", $_SERVER["HTTP_HOST"]);

if(sizeof($site === 3) && $site[0] == "www") {
    echo "Welcome to Main Site!";
} else {
    if(isset($_GET["site"])) {
        echo "Welcome to " . $_GET["site"] . "!";
    } else {
        header("Location: http://www.example.com/");
    }
}
?>