PHP假子域

时间:2017-03-04 11:24:45

标签: php .htaccess subdomain

我有一个允许免费开放网站的项目。他们必须在满足用户需求的子域上运行。我无法为所有用户创建新的真实子域,并且在创建新站点时无法将所有文件复制到新的子域。它必须参考我的主网站。所以,我希望有一个像这样的系统:

对于"示例"子域:

example.domain.com -> domain.com/index.php?subdomain=example
example.domain.com/foo.php -> domain.com/foo.php?subdomain=example
example.domain.com/bar.php?foo=bar -> domain.com/bar.php?subdomain=example&foo=bar

对于" new"子域:

new.domain.com -> domain.com/index.php?subdomain=example
new.domain.com/foo.php -> domain.com/foo.php?subdomain=example
new.domain.com/bar.php?foo=bar -> domain.com/bar.php?subdomain=example&foo=bar

等...

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:1)

会是这样的:

RewriteEngine on
RewriteCond   %{HTTP_HOST}                 ^[^.]+\.domain\.com$
RewriteRule   ^(.+)                        %{HTTP_HOST}$1          [C]
RewriteRule   ^([^.]+)\.domain\.com(.*) /index.php?subdomain=$1

但是你不需要RewriteEngine来完成你的任务......只需设置服务器就可以托管*.domain.com并在你的PHP脚本中使用类似的东西:

    <?php
       $subdomain = array_shift((explode(".",$_SERVER['HTTP_HOST']))); // will for example return "example" for "example.domain.com"
       if($subdomain == 'example'){
          do_something();
       }else if($subdomain == 'new'){
          do_something_new();
       }
    ?>