我有一个托管在000webhost上的网站,一个付费域名是从1and1购买的。 1and1提供带HTTP或帧重定向的URL重定向,但我选择将付费域指向000webhosts名称服务器。
目前,当我在(www.paiddomain.co.uk)输入付费域名时,它指向了正确的网站(www.freedomain.com)。进入此页面后,任何点击的页面都会显示在地址栏中,如www.freedomain.com/link所示,我希望它显示为www.paiddomain.com/link。
最好的方法是什么?
答案 0 :(得分:0)
在.htaccess文件中使用RedirectRule:
示例 - 从www.freedomain.com/link重定向到www.paiddomain.com/link:
RewriteEngine On
RewriteCond %{HTTP_HOST} !www.freedomain.com/link$ [NC]
RewriteRule ^(.*)$ http://www.paiddomain.com/link/$1 [L,R=301]
答案 1 :(得分:0)
在您的情况下,源服务器是freedomain.com。听起来你选择退出代理服务器,只是让DNS指向原始服务器。
第一页加载正常,因为它可以被两个域访问。但是,传递的HTML内容具有到源服务器的绝对链接。因此,当客户点击它时,它们将被直接带到原始服务器。
这取决于您的页面生成方式(静态html,drupal,wordpress,自定义应用程序)。但净效果是您的链接将如下生成:
<a href="http://www.paiddomain.com/link">absolute URL</a>
或者像这样:
<a href="/link">relative URL</a>
如果您的网站使用Cookie,您还需要为正确的域生成它们。
对于生成绝对URL的系统,它们通常会有一个变量,用于在其配置或数据库中存储“site url”,“base url”或类似内容。
您可以要求您的代理服务器将链接(和Cookie等)从freedomain.com
翻译为paiddomain.com
。这取决于代理服务器,在apache中你会使用ProxyPassReverse
。
1and1显然不愿意成为您的代理服务器: http://faq.1and1.com/domains/domain_admin/domain_dest/3.html 他们愿意提供框架(可书写性差)或HTTP重定向(更改URL)。
答案 2 :(得分:0)
当使用1and1提供的帧重定向时,我遇到了同样的问题。我的页面有外部网站的绝对URL,点击它们会在标题栏中加载我的1and1域的空白页面。
Chrome输出此错误:
'absolute link to external site' in a frame because it set 'X-Frame-Options' to 'sameorigin'.
当我点击链接时,浏览器试图在框架1和1中添加到我的页面中打开它们。解决方案是将target属性添加到我的链接并将其设置为_top。这会导致链接在当前窗口/选项卡中完全打开,并忽略该框架。
<a href="absolute link to external site" target="_top"> </a>