如何给子页面自己的域名?

Posted

技术标签:

【中文标题】如何给子页面自己的域名?【英文标题】:How to give a subpage it's own domain name? 【发布时间】:2015-07-07 22:01:20 【问题描述】:

我有一个 Joomla 网站mysite.com

我想让子页面mysite.com/example 像一个单独的网站一样使用单独的域名anothersite.com

这可以使用域上的 DNS 设置和 htaccess 来实现吗?

在 cloudaccess.net 上托管站点,但希望此解决方案适用于单页站点和登录页面,而不使用整个其他托管帐户/joomla 实例。

谢谢。

【问题讨论】:

简短回答:是的,有很多方法;太多了,如果没有更多细节,这个问题可能会有无穷无尽的答案。 嗨@IMSoP你能举一个例子来说明如何用htaccess做到这一点吗?我已经多次环顾四周以了解如何做到这一点,但尚未找到解决方案。谢谢! 正如我之前的评论所说,没有更多细节很难回答这个问题。点击edit 并描述您面临的确切情况,而不是模糊的假设情景。例如,这些站点是否都在同一台服务器上?您是要显示单个登录页面还是能够浏览整个网站?您是控制整个服务器还是使用共享主机? 感谢@IMSoP,感谢。 【参考方案1】:

如果您的托管服务提供商允许您拥有“别名”域,您可以将新域指向现有代码,并使用 RewriteCond 检测主机名:

    首先将新域配置为显示与现有域相同的所有内容。

    在 Apache 配置中(可能是共享主机上的 .htaccess)添加一个规则来检测对新域的请求,并“重写”它们以代替您的特定页面:

    RewriteCond %HTTP_HOST landingpage.example.com
    RewriteRule ^/$ /url/for/my/landing/page
    

    添加一个附加规则之后,以便该域上的其他 URL 将浏览器重定向回主站点

    RewriteCond %HTTP_HOST landingpage.example.com
    RewriteRule ^/([^/].*)$ http://realsite.example.com/$1 [R=permanent,L]
    

一种变体是将第二个域中的所有内容映射到第一个域中的目录(或者更确切地说是 URL 前缀),方法是结合这两个规则:

RewriteCond %HTTP_HOST subsite.example.com
RewriteRule ^/(.*)$ /url/for/my/subsite/$1 [L]

注意:如果 Joomla 认为它知道该页面的“正确”URL,它可能会尝试从您的新域重定向。如果是这样,那就是一个新问题的主题。

另一方面,如果您想使用 Apache 配置强制将访问 http://realsite.example.com/url/for/my/landing/page 的用户重定向到 http://landingpage.example.com/,您可以添加如下内容:

RewriteRule ^/url/for/my/landing/page$ http://landingpage.example.com/ [L,R=permanent]

注意:根据我不完全理解的一些环境设置,您可能需要在上述模式中将^/ 更改为仅^

【讨论】:

2.不起作用。像这里描述的那样使用它可以工作:***.com/a/1328357/2342963 @medoingthings 是的,看最后的注释:/ 是否包含在要匹配的 URL 中,取决于规则的确切上下文,.htaccess 文件似乎有点工作在这方面与完整的配置文件不同。

以上是关于如何给子页面自己的域名?的主要内容,如果未能解决你的问题,请参考以下文章

如何把自己写的网站项目发布到网上?

我刚买的域名,GODADDY的,解析后会跳到别人的停放页面上。等于解析到2个IP,求破

Github Pages部署静态页面并绑定域名

nat123如何使用自己的域名

万网二级域名设置的问题

如何在Github Pages搭建自己写的页面?