如何让用户创建一个新的目录,但作为一个子域而不是PHP?
上面显示了我所遵循的代码。有一个带有输入字段的表单,当用户在该输入中键入内容并点击submit时,将创建一个名为“他在输入中输入的内容”的新目录,该目录将包含名为“Copy”的现有目录中的所有文件 这很好用。假设用户输入'Example'并点击submit,他将不得不转到 我将如何使其在创建新目录时,用户必须转到子域才能访问它。而不是。我会这样做: 首先配置Web服务器,使其将所有子域流量路由到同一Web空间。使用apache,您可以通过一个通配符虚拟主机条目来实现这一点。例如如何让用户创建一个新的目录,但作为一个子域而不是PHP?,php,directory,subdomain,Php,Directory,Subdomain,上面显示了我所遵循的代码。有一个带有输入字段的表单,当用户在该输入中键入内容并点击submit时,将创建一个名为“他在输入中输入的内容”的新目录,该目录将包含名为“Copy”的现有目录中的所有文件 这很好用。假设用户输入'Example'并点击submit,他将不得不转到 我将如何使其在创建新目录时,用户必须转到子域才能访问它。而不是。我会这样做: 首先配置Web服务器,使其将所有子域流量路由到同一Web空间。使用apache,您可以通过一个通配符虚拟主机条目来实现这一点。例如 <?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);
}
?>
我没有对此进行测试,但我认为它说明了这一概念。我可能会在Web空间配置上使用
$\u服务器['SERVER\u NAME']
,以便代码更具可移植性(即nginx服务器)。此外,它还适用于共享web托管解决方案,但这并不能解决所有子域流量都需要路由到同一web空间的问题。我认为只有使用特定于Web服务器的技术才能做到这一点。当然,通配符的内容需要被替换,我只是指htaccess文件,因为并非所有的Web服务器都支持它。我会走编程路线,而不是使用重写。这样,您的代码库无论如何都不会与Web服务器发生冲突,只会根据请求为子文件夹中的页面提供服务
<VirtualHost *:80>
ServerName example.com
ServerAlias *.example.com
DocumentRoot /path/to/webroot/
</VirtualHost>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com$
RewriteRule ^(.*)$ %1/$1