重定向到其他域但保留键入的域
Posted
技术标签:
【中文标题】重定向到其他域但保留键入的域【英文标题】: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 的内容怎么做?
【问题讨论】:
【参考方案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。但是,这也有缺点:
一个示例 apache 配置可能是:
<VirtualHost *:80>
ServerName mydomain.nl
ServerAlias mydomain.be
DocumentRoot /var/www/mydomain.nl/htdocs
</VirtualHost>
【讨论】:
以上是关于重定向到其他域但保留键入的域的主要内容,如果未能解决你的问题,请参考以下文章