簡體   English   中英

如何使用PHP創建子域? 可以在共享主機上嗎?

[英]How do you create subdomains using PHP? Is is possible on shared hosting?

我有興趣直接從php快速創建子域。 例如,當用戶創建新頁面時,我希望該頁面為newpage.mydomain.com。 是否可以在不更改php或apache配置文件的情況下(假設我使用的是共享托管帳戶)。

以后的編輯:我正在談論我的域,並且我具有對域管理區域的完全訪問權限。

  1. 在您的.htaccess文件中設置一個錯誤文檔,該文檔將每個404重定向到一個可能名為redirection.php的文件。 該.php文件將處理“即時”重定向。

  2. 在區域文件中添加通配符DNS記錄,以便[whateverhere] .yourdomain.com指向您的網絡服務器的IP

  3. 使用以下命令在您的apache配置中添加通配符serveralias:ServerAlias * .yourdomain.com

  4. 在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM