redirect到其他域,但保持键入域
在网上查了一个小时之后,我没有find我的问题的答案。 所以我用错误的关键字search,或者我想要的是不可能的。
我想要的是:
我有不同的扩展名的多个域,例如:
- mydomain.be
- mydomain.nl
现在我想要的是mydomain.be被redirect到mydomain.nl。 这个解决scheme我在互联网上find,下面显示,需要.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时,你将被redirect到mydomain.nl。 但是,地址栏中的url也会更改为mydomain.nl。 我想要的是保持地址栏mydomain.be中的url。
所以,mydomain.be:
- 保持URL
- 显示mydomain.nl的内容
如何?
可以通过mod_rewrite来完成,但要确保Apache的httpd.conf中启用了mod_proxy。 一旦完成,通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在DOCUMENT_ROOT
目录下的.htaccess
:
Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.be$ [NC] RewriteRule ^ http://www.mydomain.nl%{REQUEST_URI} [L,NE,P]
记下用于处理代理请求的标志P
阅读更多关于标志:P在mod_rewrite
另外一个选项,不用和.htaccess
就是将两个域指向同一个文档根目录,或者将一个域设置为另一个域的别名,这取决于你如何configuration你的Apache。 但是,这有缺点:
- 如果您的内容pipe理系统使用绝对URL,则点击链接上的mydomain.nl的用户将被定向到mydomain.be域(例如,WordPress会这样做)。
- search引擎通过将您放在search结果上来惩罚这种行为。 至less谷歌,他们有一个有趣的博客文章重复的内容 。 不知道有关竞争对手。
一个例子apacheconfiguration可能是:
<VirtualHost *:80> ServerName mydomain.nl ServerAlias mydomain.be DocumentRoot /var/www/mydomain.nl/htdocs </VirtualHost>