简单URL使用通配符子域重写

时间:2012-11-08 10:01:16

标签: php mod-rewrite url-rewriting

我希望为每个用户提供唯一的子域名地址,例如http://*.mywebsite.com,其中*可以是任何用户名,例如xyz,abc,john,deo等。

我希望每当有人打开http://aswt.mywebsite.com这样的网址时,它都会被重定向到http://www.mywebsite.com/panels/users/index.php?subdomain=aswt

请帮我实现它,因为我是url重写的新手。我确实试过搜索谷歌和堆栈溢出,但没有发现任何类似于我或易于使用。

1 个答案:

答案 0 :(得分:0)

AFAIK,你无法使用mod_rewrite:RewriteRule不考虑HTTP_HOST。 RewriteCond虽然但在这里还不够。

您必须使用PHP:

if (preg_match('#^(.*)\.mywebsite\.com$#', $_SERVER['HTTP_HOST'], $matches))
{
  header('Location: /panels/users/index.php?subdomain='.$matches[1];
  exit;
}

应该成功......

无论如何,对于url-rewritings(特别是对于复杂的重写),PHP通常比mod_rewrite导致更少的问题并且更强大。