2012-08-06 206 views
0

自從我一直在考慮某些網站正在實施的功能以來,它已經有一段時間了,它看起來非常成功。創建動態子域名

類似於tumblr.com,blogger.com,wordpress.com的網站允許用戶使用簡單的HTML/PHP表單從網站內註冊新的子域名。用我目前對PHP的知識,我無法弄清楚自己是如何完成的。我已經閱讀了一些關於這方面的文章,但仍然無法對此做出明確的想法。因此,如何創建一個允許用戶在我的網站(www.username.mydomain.com)上註冊他們自己的子域的腳本,以及如何讓他們使用不同的網站模板(如wordpress.com)。這是可能在共享服務器上完成還是需要專用服務器?

+0

請查看我的帖子,以便在https://stackoverflow.com/questions/586129/create-subdomains-on-the-fly-with-htaccess-php中動態創建通配符子域。 – 2017-06-07 08:11:04

回答

2

這些子域問題被降低到nice URLs,friendly URLs等的級別,因爲此功能有不同的名稱。

基本上你所做的是你設置了重定向,這樣如果有人輸入foobar.example.org,服務器將服務於example.org/user.php?name=foobarexample.org/foobar。在此之後,這只是你如何整理你的PHP腳本,以便user.php/foobar的內容被正確解析。 「註冊」部分在您的DocumentRoot.htaccess文件中靜態完成。

當然,這將需要一些適當的錯誤處理爲一個不敏感的「子域」。

+0

是的,我讀過一些關於重定向的帖子,它看起來是一個很好的選擇。但是,正如我想象的那樣,重定向後地址欄中的URL從'user.mydomain.com'改爲'mydomain.com/user'。我該如何保持URL不變,比如'user.mydomain.com/page1','user.mydomain.com/page2'等等。還有一個問題是,這可以在共享服務器上完成,因爲某些託管公司不允許用戶訪問'.htaccess'並對其進行更改。 – 2012-08-07 07:48:29

+0

像這樣的高級配置可能不會在共享服務器上被取消,因爲它需要大量使用'.htaccess'。像Wordpress和Tumblr這樣的公司擁有自己的專用服務器集羣。相關的'.htaccess'指令是['mod_rewrite'](http://httpd.apache.org/docs/current/mod/mod_rewrite.html)模塊。 – Whisperity 2012-08-07 08:43:42

2

我可以告訴你一個簡單的方法。 首先你必須在你的域中啓用子域名。您可以搜索'wildcard-dns和子域'。接下來都是編程邏輯。

註冊時可以要求唯一的子域名。登錄後,將其重定向到註冊的子域。