如何显示通配符子域的内容?

时间:2018-12-23 19:16:50

标签: php .htaccess wildcard-subdomain

当用户进入一个子域(我将具有通配符子域)时,我该怎么办,他将在子文件夹中看到与主域同名的内容?例如,如果用户将输入works.domain.com,我希望他查看www.domain.com/works中的内容。

这是我的方法:

  1. 我创建了一个通配符子域,例如* .domain.com
  2. 使用index.php文件在通配符目录中创建了一些子域,因为我可以检查首选项有关此存储的其他信息->请参阅:

enter image description here

  1. 现在我的目的是向用户提供他们在url中要求的内容

此代码写在通配符/index.php文件中

  <?php 

 //Get the store name from url
 $host = $_SERVER['HTTP_HOST'];
 $url = explode('.', $host)[0];

 //Find the store name is it available in the database
 $db      = new database;
 $qri     = $db->query("SELECT * FROM store_info WHERE store_name='$url'");
 $count   = mysqli_num_rows($qri);

 //If it returns true then show the reuquested store data
 if($count != 0){
   *I want to show here the folder data that requested in the url*
 }else{
   echo 'Store Not found';
 }

现在我的问题是:

  1. 这是正确的方法吗,那么如何显示请求的文件夹数据?

1 个答案:

答案 0 :(得分:0)

您可以使用以下配置(未经测试)在PHP服务器之前配置NGINX,以将其路由到特定目录。在NGINX中进行配置比在PHP中进行配置更为有效。

server {
      server_name ~^(?<sub>[a-zA-Z0-9-]+)\.domain\.com$; # will cause the sub-domain to be placed in $sub
      return 301 "http://testsite.net/${sub}${uri}";
    }

来源:https://serverfault.com/questions/426673/nginx-redirect-subdomain-to-sub-directory