我已经翻阅了我能找到的关于这个主题的几乎每一页,但我仍然有点困惑。
我有一个PHPLaravel4.0网站,网址是
当用户注册时,每个用户都会获得自己的页面。
我在我的VPS管理器(Linode)上通过通配符子域设置了上面的内容。
在我的Laravel中,我有一个域路由,它可以选择子域并显示正确的用户页面。一切都很好。
现在,我想要实现的是有一个用户使用自己的域名和指向他们的网页在我的网站。
所以如果用户注册了
我希望这个域指向http://user1.mywebsite.com
我不想要重定向,但是网址要保留在http://www.user1domain.com (很明显)。
我知道像Tumblr这样的网站允许这样做。
为实现这一目标,我应采取哪些步骤?以下是我在研究过程中想到的一些事情。
- 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?)
耽误您时间,实在对不起。
发布于 2014-06-20 18:41:25
问题:创建一个新的DNS条目?(在我的Linode VPS中,我会在"DNS管理器“和”添加域区域“中这样做)
答:是的,您需要要求您的用户将他们的域名指向您的名称服务器。您还必须将它们的域添加到DNS管理器中。
问:我正在使用Apache,所以我必须创建一个VirtualHost (就像我对所有其他站点所做的那样),这是否意味着我必须为每个想要使用自定义域的用户创建一个新的VirtualHost文件? 如果不是VirtualHost,我如何实际指向我的web应用程序文件夹?阿帕奇别名?(我该怎么安排呢?)
答:您可以为所有人设置一个虚拟主机配置,如 vhosts中所记录的那样。
<VirtualHost _default_:80>
DocumentRoot /var/www/mysharedsite
# ...
</VirtualHost>因此,所有向您的服务器请求的域名都将由您唯一的一个代码库提供。
问:假设用户的域名现在“指向”我的web应用程序,我现在该如何在Laravel中找到它呢?(我猜我会像对待我的子域一样这样做)
我现在能想到两种方法。是的,您可以在Sub-Domain Routing上修改Laravel的文档,但是可以使用不同的域:
Route::group(array('domain' => 'user1domain.com'), function()
{
Route::get('blog/{id}', 'BlogController@view');
});但是我认为不同域之间的功能是完全相同的,只有变化的数据,您可以使用:
Request::getHost();因此,您将获得域,并可能将其映射到数据库中的website_id列以获得正确的内容。
确保您在项目中仔细地列出可接受的域名。让所有域名都进来不是个好主意。您也可以通过在虚拟主机中使用ServerName和ServerAlias来进行限制,但我认为这限制了允许新用户拥有自己的域的灵活性。
发布于 2021-10-29 09:50:22
上述答案建议将域指向主要应用程序名称服务器。在大多数情况下,这将是不理想的,因为您可能希望仍然使用域,其他子域/电子邮件与其他供应商。
因此,一个IP到应用程序的记录是最好的情况,因为它让您的客户拥有对其域的控制权
发布于 2015-04-26 20:44:16
基本上,对于创建的动态通配符,您只需要这个..
希望能帮上忙
https://stackoverflow.com/questions/24327868
复制相似问题