如何让用户创建一个新目录而不是作为子域 PHP?

How to let the user create a new directory but as a subdomain instead PHP?

<?php 

$dirPath = $_POST['username'];
$dirPass = $_POST['password'];

if (file_exists($dirPath)) {
    echo("Not available");
} else {

    if (isset($_REQUEST['sav']))
    {  
        header('Location: http://example.com/'.$dirPath);
    }

    $result = mkdir($dirPath, 0755);

    function recurse_copy($src,$dst) {
        $dir = opendir($src); 
        @mkdir($dst); 
        while(false !== ( $file = readdir($dir)) ) { 
            if (( $file != '.' ) && ( $file != '..' )) { 
                if ( is_dir($src . '/' . $file) ) { 
                    recurse_copy($src . '/' . $file,$dst . '/' . $file); 
                } 
                else
                { 
                    copy($src . '/' . $file,$dst . '/' . $file); 
                } 
            } 
        } 
        closedir($dir); 
    }

    // Source directory (can be an FTP address)
    $src = "copy/";
    // Full path to the destination directory
    $dst = "$dirPath/";

    recurse_copy($src,$dst);
}
?>

上面显示了我正在遵循的代码。有一个带有输入字段的表单,当用户在该输入中输入内容并点击提交时,将创建一个名为 'Whatever he entered in the input' 的新目录,它将包含现有目录中名为 'Copy' 的所有文件.

这非常有效。假设用户输入 'Example' 并点击提交,他将不得不转到 http://example.com/Example.

我该怎么做才能在创建新目录时,用户必须转到子域才能访问它。 http://Example.example.com 而不是 http://example.com/Example.

我会这样做: 首先配置您的网络服务器,将所有子域流量路由到同一个网站空间。使用 apache,您可以使用通配符虚拟主机条目来执行此操作。例如

<VirtualHost *:80>
  ServerName example.com
  ServerAlias *.example.com
  DocumentRoot /path/to/webroot/
</VirtualHost>

其次,我将创建一个 .htaccess 重写条件,将子域请求重定向到匹配的文件夹。

RewriteEngine on

RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com$
RewriteRule ^(.*)$ %1/ 

我没有对此进行测试,但我认为它说明了这个概念。