繁体   English   中英

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

[英]Clone a website from one domain to another

什么是以下最佳方法?

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

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

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

我有3个主要问题。

1)我将如何实现这样的目标而不必手动在每5个站点上重新创建每个页面?

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

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

谢谢你的帮助

编辑:

这些网站的主要目的是针对每个地理区域的利基市场,因此,如果有人输入“ bikes glossop”,他们将首先找到glossop网站。

每个站点将有60/70%的相似文本/副本,但理想情况下,每个产品的关键统计信息将通过一厘米进行更新。 可以通过现有的CMS(例如Joomla,Silverstripe,wordpress)完成此操作,还是必须进行定制的php工作?

这使我的问题更清楚了吗?

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

2)如果您只是复制网站,或只是在此处和此处更改几个单词,那么是的,搜索引擎会将其视为重复的内容。 如果这些站点都在同一服务器上,则可能会受到处罚。 (不过,通常情况下,Google只会采用其认为是“原始”页面的内容,而不显示其他页面。)

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

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

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

例如,此页面包含以下说明:

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

这样,搜索引擎将知道要关注的页面并给出排名,而其他页面则被视为到达该页面的替代路线。

除非我误解了您要做什么,否则您需要将所有域都放在同一服务器上,并且所有域都指向同一文件夹。

这很容易做到-即使每个站点使用不同的外观/标题图形-例如使用一些PHP,但这听起来也不是一个好主意,主要是因为存在重复的内容问题。 如果您不介意我问,您这样做的原因是什么? 这是管理决定吗? 简单重定向到一个中央站点不是更好的方法吗?

我会尽力说明我认为最好的DisgruntledGoat的选项。

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

  1. 解析所有现有的html文件,并分离出跨域相似的部分。 您将这些零件放在数据库中。
  2. 为每个域制作一个模板。
  3. 对于每个域,调用特定于域的模板,并通过从数据库中调用特定于域的IN的内容(例如文本和价格)来填充它。

如果要更新特定于域的内容,请在数据库中执行此操作,然后在所有站点中对其进行更新。 如果要更改特定于域的内容,请在该域的模板中进行更改。

SEO点-仅供参考:更改一个关键字(例如,地区名称)将意味着您拥有重复的内容(如Google所见)。 所以我真的不建议您做建议。 而是尝试编写有关位置本身的更多信息(例如,城市描述,基本事实等),并将其与与自行车相关的关键字结合在一起-这样可以为您提供更多帮助。

我要做的是,这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为您创建一些不错的路由。

我以前做过这种事情,我们用它拉了它并缓冲了输出 这样一来,您就可以在对HTML进行“预处理”之前将其吐出并进行所需的任何搜索/替换。

我们无法在该项目中使用DB,因为他们已经有大量的.html。 DB听起来是最合乎逻辑的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM