PHP重写子域名


subdomain rewriteurl in PHP

我已经设置了我的域,将所有通配符子域指向我的web服务器。我想做的是根据我在通配符子域上收到的值执行重写url。

这是一个我不知道如何克服的特殊情况。

username.mydomain.com重写为mydomain.com/user.php?userid=username

groupname.mydomain.com改写为mydomain.com/group.php?groupid=groupname

我在我的数据库中存储了如下类型的表。

john->userid
technology->groupid
steve->userid
Macleen->userid
Sports->groupid

这将有助于实现这个程序吗?我如何使用rewriteURL实现这一点?

,我也想保持页面的URL,直到用户从user.phpgroup.php导航到另一个页面

尝试如下:

RewriteCond %{HTTP_HOST} !^www'.mydomain'.com$ [NC]
RewriteCond %{HTTP_HOST} !^mydomain'.com$ [NC]
RewriteCond %{HTTP_HOST} ^([^'.]+)'.mydomain'.com$ [NC]
RewriteRule ^$ file.php?id=%1 [L]

你可以在file.php中放置某种类型的id检查,以确定它是用户名还是组名,只有当你有唯一的id时才能工作,尽管没有办法将random.mydomain.com与random.mydomain.com分开。

你可以用javascript来格式化url:

 history.pushState({path: "url"}, "", "http://random.mydomain.com/user");

index.php:

<?php
if(preg_match('/([a-z]+).mydomain.com/i', $_SERVER['SERVER_NAME'], $matches)){
  $subdomain = $matches[1];
  if(YourModel::isGroupName($subdomain)){
    $_GET['groupid'] = $subdomain;
    require './group.php';
  } else {
    $_GET['userid'] = $subdomain;
    require './user.php';
  }
}