我已经设置了我的域,将所有通配符子域指向我的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.php
或group.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';
}
}