如何让用户创建一个新目录而不是作为子域 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/
我没有对此进行测试,但我认为它说明了这个概念。
<?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/
我没有对此进行测试,但我认为它说明了这个概念。