【问题标题】:Rewrite spare domains to main domains with .htaccess使用 .htaccess 将备用域重写为主域
【发布时间】:2015-09-02 20:30:19
【问题描述】:

我们的网站有英文版和西班牙文版,分别位于不同的域中。对于每种语言,我们还有一些备用域,我们希望将它们重定向到该语言的主域。

具体来说:

  • estadiosfutbol.net/...、estadiosfutbol.org/... 和 estadiosfutbol.info/... 都应该重定向到 https://estadiosfutbol.com/...
  • worldfootballstadiums.com/...、worldfootballstadiums.info/...、worldfootballstadiums.org/... 和 worldfootballstadiums.net/... 都应该重定向到 https://worldstadiums.football/...

我正在为重写规则而苦苦挣扎,因此我们将不胜感激。

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    有两种方法可以做到这一点。第一个是最简单的,但并不总是实用的。

    第一种方法

    此方法不需要 HTACCESS 文件。在您的 Apache 服务器配置中,您只需为您希望它处理的每个域添加 ServerAliases。 (您必须确保所有域都指向同一台机器)

    守则

    NameVirtualHost *:443
    
    <VirtualHost *:443>
    ServerName estadiosfutbol.com
    ServerAlias estadiosfutbol.info estadiosfutbol.net estadiosfutbol.org
    DocumentRoot /www/domain
    </VirtualHost>
    
    <VirtualHost *:443>
    ServerName worldstadiums.football
    ServerAlias worldfootballstadiums.com worldfootballstadiums.net worldfootballstadiums.info worldfootballstadiums.org
    DocumentRoot /www/otherdomain
    </VirtualHost>
    

    注意:这只会在用户尝试使用 SSL 访问网站时重定向。 (例如)如果您希望它重定向来自端口 80 和端口 443 的所有流量,则需要创建单独的虚拟主机并使用第二种方法来实现重定向。

    第二种方法

    第二种方法稍微复杂一些,但几乎适用于所有情况。为了使其正常工作,需要执行两个主要步骤:

    1. 确保您使用的任何服务器软件都设置为查找所有域。服务器必须有一个正在监听每个域的 VirtualHost(Apache),以便下一步执行任何操作。

    2. 在每个域的根目录下创建一个类似于此的 .HTACCESS 文件:

    守则

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} !estadiosfutbol.net$ [NC]
    RewriteRule ^(.*)$ https://estadiosfutbol.com/$1 [L,R=301]
    

    注意:您需要将每个域的第三行更改为要重写的域(例如 estadiosfutbol.net/、estadiosfutbol.org/ 和 estadiosfutbol.info)

    注意:更改第四行是单独域所需的全部内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 2019-12-05
      • 2014-06-27
      相关资源
      最近更新 更多