URL屏蔽/转发/重定向

时间:2012-12-23 21:39:35

标签: url redirect dns forwarding masking

我有一个托管在000webhost上的网站,一个付费域名是从1and1购买的。 1and1提供带HTTP或帧重定向的URL重定向,但我选择将付费域指向000webhosts名称服务器。

目前,当我在(www.paiddomain.co.uk)输入付费域名时,它指向了正确的网站(www.freedomain.com)。进入此页面后,任何点击的页面都会显示在地址栏中,如www.freedomain.com/link所示,我希望它显示为www.paiddomain.com/link。

最好的方法是什么?

3 个答案:

答案 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]

More info

答案 1 :(得分:0)

术语

  • origin server - 提供原始内容的服务器
  • 代理服务器 - 位于客户端和源服务器之间的服务器

在您的情况下,源服务器是freedomain.com。听起来你选择退出代理服务器,只是让DNS指向原始服务器。

原因

第一页加载正常,因为它可以被两个域访问。但是,传递的HTML内容具有到源服务器的绝对链接。因此,当客户点击它时,它们将被直接带到原始服务器。

没有代理服务器,您有两个选择

  1. 获取源服务器以生成所需域的绝对链接。
  2. 获取原始服务器以生成相关链接。
  3. 这取决于您的页面生成方式(静态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>