重定向到其他域但保留键入的域

时间:2013-04-15 07:34:03

标签: .htaccess mod-rewrite redirect

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

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

  • 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的内容

如何?

2 个答案:

答案 0 :(得分:20)

可以通过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

答案 1 :(得分:3)

另一个没有与.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>