首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许用户使用自定义域名

问允许用户使用自定义域名
EN

Stack Overflow用户
提问于 2014-06-20 12:59:22
回答 3查看 9.3K关注 0票数 10

我已经翻阅了我能找到的关于这个主题的几乎每一页,但我仍然有点困惑。

我有一个PHPLaravel4.0网站,网址是

http://www.mywebsite.com

当用户注册时,每个用户都会获得自己的页面。

http://user1.mywebsite.com

我在我的VPS管理器(Linode)上通过通配符子域设置了上面的内容。

在我的Laravel中,我有一个域路由,它可以选择子域并显示正确的用户页面。一切都很好。

现在,我想要实现的是有一个用户使用自己的域名和指向他们的网页在我的网站。

所以如果用户注册了

http://www.user1domain.com

我希望这个域指向http://user1.mywebsite.com

我不想要重定向,但是网址要保留在http://www.user1domain.com (很明显)。

我知道像Tumblr这样的网站允许这样做。

为实现这一目标,我应采取哪些步骤?以下是我在研究过程中想到的一些事情。

  1. 让用户使他们的自定义域"user1domain.com“指向我的VPS名称服务器(容易)。
  2. 在我的一端(这是我的不足之处),我是不是

代码语言:javascript
复制
- Create a new DNS entry? (In my Linode VPS, I would do this in "DNS Manager" and "Add a domain zone")
- I'm using Apache, so do I have to create a VirtualHost (like I do for all of my other sites), does this mean I have to create a new VirtualHost file for every user who wants to use a custom domain?
- If NOT VirtualHost, how do I actually point to my web application folder? Apache alias? (How do I set that up?)

​

  1. 假设用户的域名现在“指向”了我的web应用程序,我现在该如何在Laravel中找到它呢?(我猜我会像对待我的子域一样这样做)

耽误您时间,实在对不起。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-20 18:41:25

问题:创建一个新的DNS条目?(在我的Linode VPS中,我会在"DNS管理器“和”添加域区域“中这样做)

答:是的,您需要要求您的用户将他们的域名指向您的名称服务器。您还必须将它们的域添加到DNS管理器中。

问:我正在使用Apache,所以我必须创建一个VirtualHost (就像我对所有其他站点所做的那样),这是否意味着我必须为每个想要使用自定义域的用户创建一个新的VirtualHost文件? 如果不是VirtualHost,我如何实际指向我的web应用程序文件夹?阿帕奇别名?(我该怎么安排呢?)

答:您可以为所有人设置一个虚拟主机配置,如 vhosts中所记录的那样。

代码语言:javascript
复制
<VirtualHost _default_:80>
    DocumentRoot /var/www/mysharedsite
    # ...
</VirtualHost>

因此,所有向您的服务器请求的域名都将由您唯一的一个代码库提供。

问:假设用户的域名现在“指向”我的web应用程序,我现在该如何在Laravel中找到它呢?(我猜我会像对待我的子域一样这样做)

我现在能想到两种方法。是的,您可以在Sub-Domain Routing上修改Laravel的文档,但是可以使用不同的域:

代码语言:javascript
复制
Route::group(array('domain' => 'user1domain.com'), function()
{
    Route::get('blog/{id}', 'BlogController@view');
});

但是我认为不同域之间的功能是完全相同的,只有变化的数据,您可以使用:

代码语言:javascript
复制
Request::getHost();

因此,您将获得域,并可能将其映射到数据库中的website_id列以获得正确的内容。

确保您在项目中仔细地列出可接受的域名。让所有域名都进来不是个好主意。您也可以通过在虚拟主机中使用ServerName和ServerAlias来进行限制,但我认为这限制了允许新用户拥有自己的域的灵活性。

票数 10
EN

Stack Overflow用户

发布于 2021-10-29 09:50:22

上述答案建议将域指向主要应用程序名称服务器。在大多数情况下,这将是不理想的,因为您可能希望仍然使用域,其他子域/电子邮件与其他供应商。

因此,一个IP到应用程序的记录是最好的情况,因为它让您的客户拥有对其域的控制权

票数 0
EN

Stack Overflow用户

发布于 2015-04-26 20:44:16

基本上,对于创建的动态通配符,您只需要这个..

  1. 将域上的通配符(记录)设置到服务器ip地址 192.168.1.1中的*.mywebsite.com
  2. 在VirtualHost中为域名设置servername &server别名Apache ServerName mywebsite.com ServerAlias mywebsite.com *.mywebsite.com
  3. 窗口控制台上清除dnscache ipconfig/flushdns

希望能帮上忙

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24327868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档