将网站从一个域克隆到另一个域

时间:2009-11-04 14:43:03

标签: php database content-management-system seo

以下内容的最佳方法是什么......

网站1 - 有300多个个人.html产品页面(不涉及数据库)

网站1的产品/内容需要在网站2,网站3,网站4和网站5上进行复制。

每个网站都是基于位置的,例如glossop-bikes.co.uk,buxton-bikes.co.uk,hyde-bikes.co.uk等。

我有3个主要问题..

1)如果不必手动重新创建每个网站上的每一个页面,我将如何实现这一目标?

2)我如何避免重复的内容问题?,因为产品在不同的位置会相同。

3)是否可以更改产品详细信息/价格等,然后在所有5个网站上更新?

谢谢你的帮助

编辑:

这些网站的主要目的是在每个地理区域定位一个利基市场,所以有人会说'bikes glossop',他们会首先找到glossop网站等。

每个网站都有60/70%类似的文本/副本,但每个产品的关键统计数据最好通过一个cms更新。这可以通过像Joomla,Silverstripe,wordpress这样的现有CMS来完成,还是必须是一个定制的php工作?

这会让我的问题更清楚吗?

7 个答案:

答案 0 :(得分:1)

1)除非我误解,否则你不能只将所有页面上传到不同的站点(即FTP中的不同文件夹)吗?如果您正在更改网站标题,您可以使用Notepad ++在所有页面上进行搜索/替换,即将“Glossop Bikes”替换为“Buxton Bikes”,但这并不完全可靠。

2)如果您只是准确地复制网站,或者只是在这里和那里更改几个单词,那么是的,搜索引擎会将其视为重复内容。如果这些网站都在同一台服务器上,你可能会受到惩罚。 (通常情况下,谷歌只会采用它认为的“原始”页面而不是其他页面。)

3)不容易在静态网站上 - 我猜你可以再次搜索/替换它。即使使用动态站点也很困难 - 您必须在一个站点上进行更改并复制数据库表。

另一个解决方案是首先将所有站点指向同一个数据库。然后使用某种语言系统来替换关键文本。例如,您将拥有一个包含该站点变量的文件,例如$sitename = 'Glossop Bikes';。在您的页面代码中,只要您想要放置站点名称,就可以引用变量。并为每个站点创建不同的语言文件。

答案 1 :(得分:0)

2)您选择一个页面成为“主要”,并将规范属性添加到其他页面以指向主页面。

例如,这个页面包含以下指令:

<head>
    <link rel="canonical" href="http://stackoverflow.com/questions/1674188/clone-a-website-from-one-domain-to-another">
</head>

这样搜索引擎就会知道要关注哪个页面并给出排名,而其他页面将被视为其中的替代路径。

答案 2 :(得分:0)

除非我误解了您要做的事情,否则您需要将所有域名放在同一台服务器上,并让所有域名都指向同一个文件夹。

答案 3 :(得分:0)

这很容易实现 - 即使每个网站使用不同的皮肤/标题图形 - 例如使用一些PHP,但这听起来不错,主要是因为内容重复问题。 如果你不介意我问,你这样做的原因是什么?这是管理层的决定吗?将简单的重定向到一个中心站点不是更好的方法吗?

答案 4 :(得分:0)

我会尝试详细说明我认为最好的DisgruntledGoat选项。

您说该网站上有300个网页,您希望其他网站的网页基本相同,内容基本相同。我的策略如下。

  1. 解析所有现有的html文件,并将跨域相似的部分分开。您将这些部分放在数据库中。
  2. 为每个域制作模板。
  3. 每个域,调用特定于域的模板,并通过从数据库中调用特定于域的IN内容(如文本和价格)来填充它。
  4. 如果要更新特定于域的IN内容,请在数据库中执行此操作,然后在所有站点中更新。如果要更改特定于域的内容,请在该域的模板中进行更改。

答案 5 :(得分:0)

SEO点 - 仅供参考:更改一个关键字(例如地区名称)将意味着您有重复的内容,如谷歌所见。所以我不会真的建议做你的建议。而是尝试写出更多关于地方本身的信息(例如城市描述,基本事实等),并将其与自行车相关的关键词结合起来 - 这将对你有所帮助。

答案 6 :(得分:0)

我要做的是,300多种产品中的每一种都有自己的.html页面,该页面只包含与产品相关的信息。所有的品牌和主题都将是分开的文件(页脚,标题,菜单,css),每个网站都有一组文件。

然后使用PHP将各个部分粘合在一起。可以通过以下任一方式从.html文件中提取每个产品的内容:

$content = file_get_contents("http://website1.co.uk/products/$productnumber.thtml");

或(“风险更大”)

include("http://website1.co.uk/products/$productnumber.thtml");

您可以在查询中传递$ productnumber(即?productno = 1)或让apache使用mod_rewrite为您创建一些不错的路径。

我以前做过这样的事情,我们用它和buffered output拉了它。这可以让你在吐出之前“预处理”htmls并进行所需的搜索/替换。

我们无法将DB用于该项目,他们已经拥有吨.html。数据库听起来是最合乎逻辑的答案。