我想能够将指向我的网站主办的域redirect到外部域。
例如,我在.htaccess中有这个:
RewriteCond %{HTTP:Host} ^(?:www\.)?mydomain\.example$ RewriteRule ^(.*)$ http://myexternal.example/site [R=301,NC]
但是,当我访问域时,我的地址栏中的URL变为http://myexternal.example/site 。
我如何redirect而不更改url?
有没有其他的方法呢? 我需要使用框架/ iframe吗?
很久以前,但是我会回答那些由Google来到这里的人(像我一样)的问题。 答案很简单:
在你的htaccess中,删除R = 301部分(当然是逗号)。
R = 301意味着你通过301重定向。 你不要那个
可以是单个框架框架,也可以是宽度/高度均设置为100%的iframe。
我不确定在更新版本的HTML中是否支持framsets,但浏览器仍旧能够理解旧版本,但是无论如何,单个iframe是很容易的。
<html> <head> <title>My Site</title> <style> body { margin: 0; padding: 0; } body, iframe { width: 100%; height: 100%; } iframe { border: 0; } </style> </head> <body> <iframe src="http://example.com" /> </body> </html>
也许你可以通过改变域名mydomain.net的DNS来链接到myexternal.net。 然后,您必须在外部服务器上使用适当的.htaccess
。
没有其他答案提出这个建议。 mod正在寻找的是mod-proxy 。 您可以使用mod-rewrite的P标志将请求从您的domainA代理到domainB 。
RewriteRule ^(.*)$ http://domainB.com/$1 [P]
这将内部重定向从domainA到domainB的所有请求。
确保您的服务器上启用了mod-proxy 。