【问题标题】:Redirect to other domain but keep typed domain重定向到其他域但保留键入的域
【发布时间】:2013-04-07 06:08:23
【问题描述】:

在网上看了大约一个小时后,我没有找到我的问题的答案。所以我用错误的关键字搜索或者我想要的东西是不可能的。

我想要什么:
我有多个具有不同扩展名的域,例如:

  • mydomain.be
  • mydomain.nl

现在我想要的是 mydomain.be 被重定向到 mydomain.nl。我在互联网上找到的解决方案如下所示,需要.htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.be$ [OR]
RewriteCond %{HTTP_HOST} ^www.mydomain.be$
RewriteRule (.*)$ http://www.mydomain.nl/$1 [R=301,L]

使用此代码,当您键入 mydomain.be 时,您将被重定向到 mydomain.nl。但地址栏中的 URL 也更改为 mydomain.nl。我想要的是将 URL 保留在地址栏中 mydomain.be 中。

所以,mydomain.be:

  • 保留网址
  • 显示 mydomain.nl 的内容

怎么做?

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite mod-proxy


    【解决方案1】:

    可以通过 mod_rewrite 完成它,但请确保在 Apache 的 httpd.conf 中启用了 mod_proxy。完成后,通过httpd.conf 启用 mod_rewrite 和 .htaccess,然后将此代码放入 .htaccess 下的 DOCUMENT_ROOT 目录:

    Options +FollowSymLinks -MultiViews
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.be$ [NC]
    RewriteRule ^ http://www.mydomain.nl%{REQUEST_URI} [L,NE,P]
    

    注意用于处理代理请求的标志P

    Read more about flag: P in mod_rewrite

    【讨论】:

    • 太棒了,谢谢,让我很开心,但是我可以在同一个 .htaccess 中使用多个 url 吗?例如,只需添加更多 'RewriteCond' 和 'RewriteRule'?
    • 它对我不起作用。我有 www.mydomain.com 和 abc.anotherdomain.com。我想在 www.mydomain.com 上显示 abc.anotherdomain.com 的内容而不更改 url。我收到 404 错误。有什么建议吗?
    • @anubhava:要修改的 htacces 是 DomainA 还是 DomainB?因为我刚刚创建了DomainA的子域,指向DomainB的同一个ip,所以subDomainA没有网站,也没有文件夹。这可能吗?
    • @PonzioPilato:这条规则应该仍然适用于将 subDomainA 更改为 subDomainB。 subDomainA 可能没有内容,但VirtualHost 中会定义一些DocumentRoot
    • @anubhava 这不是安全问题吗?如果我理解正确,这就像在我的网站 url 上显示另一个网站(我不拥有)内容?
    【解决方案2】:

    另一个不用.htaccess 麻烦的选项是将两个域都指向同一个文档根目录或将一个域设置为另一个域的别名,具体取决于您如何配置 Apache。但是,这也有缺点:

    • 如果您的内容管理系统使用绝对 URL,则单击链接上的 mydomain.nl 的用户将被定向到 mydomain.be 域(例如,WordPress 就是这样做的)。
    • 搜索引擎会通过将您放在搜索结果的下方来惩罚这种行为。至少谷歌有,他们有一个有趣的blog post about duplicate content。不确定竞争对手。

    一个示例 apache 配置可能是:

    <VirtualHost *:80>
        ServerName mydomain.nl
        ServerAlias mydomain.be
    
        DocumentRoot /var/www/mydomain.nl/htdocs
    </VirtualHost>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-13
      • 2015-09-29
      • 2014-10-21
      相关资源
      最近更新 更多