2

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

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

请帮助我实现它,因为我是 url 重写的新手。我确实尝试过在谷歌和堆栈溢出上进行搜索,但没有发现任何与我相似或易于使用的东西。

4

1 回答 1

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 重写(尤其是复杂的),PHP 导致的问题通常比 mod_rewrite 少得多,而且功能更强大。

于 2012-11-08T10:13:14.943 回答