[英]How do you create subdomains using PHP? Is is possible on shared hosting?
我有興趣直接從php快速創建子域。 例如,當用戶創建新頁面時,我希望該頁面為newpage.mydomain.com。 是否可以在不更改php或apache配置文件的情況下(假設我使用的是共享托管帳戶)。
以后的編輯:我正在談論我的域,並且我具有對域管理區域的完全訪問權限。
在您的.htaccess文件中設置一個錯誤文檔,該文檔將每個404重定向到一個可能名為redirection.php的文件。 該.php文件將處理“即時”重定向。
在區域文件中添加通配符DNS記錄,以便[whateverhere] .yourdomain.com指向您的網絡服務器的IP
使用以下命令在您的apache配置中添加通配符serveralias:ServerAlias * .yourdomain.com
在redirection.php文件中編寫以下代碼。
。
<?php
$url = $_SERVER["REQUEST_URL"];
$newurl=str_replace(".yourdomain.com","",$url);
$newcomplete="http://yourdomain.com/".$newurl;
Header("Location: ".$newcomplete);
?>
這有幫助嗎?
是的,您可以這樣做。 您需要確保首先設置一個通配符*在域注冊DN面板中針對您的域的記錄。
設置通配符后,您只需查看>
$_SERVER["SERVER_NAME"]
僅靠PHP是不可能的。 而且我不認為共享托管允許這樣做。 無論如何,因為您必須擁有一個域(或具有編輯DNS記錄的權限),然后可以添加通配符記錄以允許任何子域指向單個計算機(由其IP地址標識)
編輯(來自Powerlord的評論)
apache通常必須在虛擬主機配置中使用ServerAlias *.example.com
將每個子域重定向到同一虛擬主機。
/編輯
然后在php中,您可以通過解析(拆分) $_SERVER['HOST_NAME']
來檢查該頁面是從子域請求的
例如:
$host = explode ('.', $_SERVER['HOST_NAME']);
array_pop ($host);
array_pop ($host);
$subdomain = join ('.', $host);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.