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

时间:2015-07-31 05:04:40

标签: php .htaccess redirect dns wildcard

所以我正在开发一个类似于Guild Hosting& Clan托管网站。但是我遇到了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=$1 [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中实现这一切吗?

1 个答案:

答案 0 :(得分:0)

所以我厌倦了等待答案,所以我搞砸了我的.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/");
    }
}
?>