如何将所有子域网址重定向到主域

时间:2018-07-11 21:09:25

标签: regex linux apache .htaccess redirect

由于某些原因,搜索引擎在托管主机上索引了我的插件域。他们不应该那样做。

例如,我刚刚找到了类似的网址

  

addondomain / maindomain.com

如何防止这种情况发生?搜索引擎如何找到我的addondomains?

这里的解决方案是什么?我尝试过了

docker-compose up

但是当我访问网址时

docker-compose.yml例如什么都没有发生?

2 个答案:

答案 0 :(得分:0)

尝试更改.httaccess文件。您可以使用以下规则替换规则::

RewriteCond %{HTTP_HOST} =shop.domain.abc
RewriteRule ^ http://www.domain.abc/? [R=301,L]

使用%{REQUEST_URI}将导致原始URI复制到目标中。尾随?目标中的in会删除所有预先存在的查询字符串。

答案 1 :(得分:0)

此答案是对我对您的问题的评论的进一步解释。

  

如何防止这种情况发生?搜索引擎如何找到我的   addondomains?

Google可以轻松地在您的网站上找到这些子域。为防止这种情况的发生,您可以使用301状态代码设置重定向,以告知Google它不应为插件域建立索引。这样,Google也会更新其索引。

这是共享主机的非常常见的情况,尤其是在使用CPanel时。在Hostgator的支持页面上,您可以看到他们已提及此行为。

  

附加网址示例

     

对于主域abc.com,如果您分配了插件域123.com   到文件夹“ 123”,则以下URL是正确的:

abc.com/123
123.abc.com
123.com
     

所有这三个路径都将访问同一目录并显示   同一网站。对于访问123.com的访问者,没有证据表明   它们正在通过123.abc.com路由。

https://support.hostgator.com/articles/cpanel/what-is-an-addon-domain

您可以通过将以下内容添加到.httaccess

中来解决此问题
RewriteEngine On
RewriteCond %{HTTP_HOST} ^addondomain\.maindomain\.com$ [NC]
RewriteRule ^ http://www.maindomain.com [R=301,L]
  

NC-不区分大小写的方式匹配。

     

R-导致向浏览器发出HTTP重定向。当给出为   R=301会发出301状态代码,该代码需要   通知Google他们的索引应相应更新。

     

L-使mod_rewrite停止处理规则集。多数情况   上下文,这意味着如果规则匹配,则不会再有其他规则   被处理。

================================================ ===========

编辑:已更新,可以按照注释中的要求将重定向添加到所有域。

为此,您只需检查主机名是否等于您的主域,否则就可以将其重定向到主域。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.maindomain\.com$ [NC]
RewriteRule ^ http://www.maindomain.com [R=301,L]

希望它会有所帮助:)