2

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

目前,当我在 (www.paiddomain.co.uk) 中输入付费域时,它会将我指向正确的网站 (www.freedomain.com)。一旦在此页面上,任何被点击的页面都会在地址栏中显示为 www.freedomain.com/link,而我想要它显示为 www.paiddomain.com/link。

这样做的最佳方法是什么?

4

3 回答 3

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]

更多信息

于 2012-12-23T22:07:04.430 回答
0

术语

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

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

原因

第一个页面加载正常,因为它可以被两个域访问。但是,交付的 HTML 内容具有指向源服务器的绝对链接。因此,当客户端单击它时,它们会被直接带到源服务器。

如果没有代理服务器,您有两种选择

  1. 获取源服务器以生成指向所需域的绝对链接。
  2. 获取源服务器以生成相对链接。

这取决于您的页面是如何生成的(静态 html、drupal、wordpress、自定义应用程序)。但最终效果是您的链接将像这样生成:

<a href="http://www.paiddomain.com/link">absolute URL</a>

或像这样:

<a href="/link">relative URL</a>

如果您的网站使用 cookie,您还需要为正确的域生成它们。

对于生成绝对 URL 的系统,它们通常会在其配置或数据库中存储“站点 url”、“基本 url”或类似的变量。

使用代理服务器

您可以要求您的代理服务器将链接(和 cookie 等)freedomain.compaiddomain.com. 这取决于代理服务器,在 apache 中您将使用ProxyPassReverse.

1and1 显然不愿意成为您的代理服务器: http: //faq.1and1.com/domains/domain_admin/domain_dest/3.html 他们愿意提供框架(可收藏性差),或 HTTP 重定向(更改 URL) .

于 2012-12-23T22:26:09.810 回答
0

在使用 1and1 提供的帧重定向时,我遇到了同样的问题。我的页面具有指向外部站点的绝对 URL,当单击它们时,它们会在标题栏中加载一个带有我的 1and1 域的空白页面。

Chrome 输出了这个错误:

'absolute link to external site' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

结果是,当我单击浏览器试图在添加到我的页面的框架 1and1 中打开它们的链接时。解决方案是将目标属性添加到我的链接并将其设置为 _top。这会导致链接在当前窗口/选项卡中完全打开并忽略框架。

<a href="absolute link to external site" target="_top"> </a>
于 2015-04-23T01:36:22.320 回答