2017-10-20 73 views
1

我正在創建一個在線服務,爲不同組織的成員創建一個公共個人頁面。我希望組織附加一個域(可能是其主要網址的子域),但我不確定如何通過PHP進行設置。如何讓用戶連接自己的域名

什麼我要找的是怎樣的tumblr可讓您連接自己的域名的例子:profile.useraddedurl.com/XYZ

所以我想什麼是到顯示appurl.com/user.php?domain=profile.useraddedurl.com & ID = XYZ

我想知道在PHP中設置此最好的方式,如果有任何特殊的服務器配置需放進去地點。

我想我可能需要動態創建一個htaccess文件,但是有沒有更好的方法來完成這個?

回答

0

首先你需要讓用戶設置他們的個人域名。

他們需要將它指向正確的IP地址(您可能希望他們使用CNAME記錄),但您需要爲他們提供他們需要的信息。

您還需要提供一個表格,以便他們告訴您他們希望您爲他們處理的域名。將它存儲在你的數據庫中。

然後,當您收到請求時,您需要顯示正確的網站。

一般的方法是確保所有請求都由相同的腳本處理(使用前端控制器模式)。

如果要使用虛擬主機名來處理特定領域有不同的腳本(例如api.example.com)然後確保默認一個(如果你使用的是Apache第一個定義的)是這一個。如果你不想這樣做,那麼完全避免虛擬名稱託管,因爲它只會產生複雜性。

然後,在PHP腳本中,查看$_SERVER['HTTP_HOST']。將它與數據庫中的註冊域進行比較。如果你得到一個匹配,顯示該用戶的網站。否則,顯示您的默認值。

+0

用戶域是否需要添加爲服務器上的別名?或者這需要在VPS上而不是在共享主機上進行設置? – Dukatu

+0

「用戶域是否需要添加爲服務器上的別名?」 - 這取決於你的意思是「別名」。 [Apache別名指令](https://httpd.apache.org/docs/current/mod/mod_alias.html#alias)適用於不是主機名的路徑。我已經描述了答案中所需的DNS或虛擬名稱。 – Quentin

+0

「這是否需要在VPS而不是共享主機上設置?」 - 在共享主機上,您不需要訪問權限即可將網站設爲默認網站,如答案倒數第二段所述。 – Quentin

相關問題