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

Php 将网站从一个域克隆到另一个域,php,database,content-management-system,seo,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等 我有三个主要问题 1) 我如何在不必手动重新创建每5个站点上的每个页面的情况下实现这一点 2) 我如何避免重复的内容问题?因为产品在不同的位置是相同的 3) 是否可以更改产品详细信息/价格等一次,然后在所有5个站点上

以下哪种方法是最好的

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

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

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

我有三个主要问题

1) 我如何在不必手动重新创建每5个站点上的每个页面的情况下实现这一点

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

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

谢谢你的帮助

编辑:

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

每个站点将有60/70%的相似文本/副本,但每个产品的关键统计数据最好通过一个cms更新。这可以通过Joomla、Silverstripe、wordpress等现有的CMS来实现,还是必须是定制的php作业

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

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

例如,本页包含以下说明:

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


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

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

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

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

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

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


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

我将尝试详细介绍我认为最好的DisgludgeOAT选项

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

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

  • 如果您想更新特定内容中的域,可以在数据库中进行更新,然后在所有站点中进行更新。如果您想更改特定于域的内容,请在该域的模板中进行更改。

    搜索引擎优化点-仅供参考:更改一个关键字(例如,地区名称)将意味着您的内容与谷歌看到的内容重复。所以我不建议你按照你的建议去做。相反,试着写更多关于当地的信息(例如,城市描述、基本事实等),并将其与自行车相关的关键词结合起来,这会对你有更大的帮助。

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

    然后用PHP把这些片段粘在一起。通过执行以下操作之一,可以从.html文件中提取每个产品的内容:

    $content = file_get_contents("http://website1.co.uk/products/$productnumber.thtml");
    
    或(“更高风险”)

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

    我以前做过类似的事情,我们就这样做了。它允许您在吐出htmls并执行任何需要的搜索/替换之前“预处理”htmls


    我们不能在那个项目中使用DB,他们已经有了大量的.html。DB听起来是最符合逻辑的答案。

    所有域都在同一台服务器上吗?您只是想让多个域指向同一数据子集吗?或者,您是否在为每个领域设想不同的品牌?请澄清您的问题。imho的“另一种解决方案”是最好的。它坚持干燥,是最容易维护的选项。这对他不起作用,因为他需要基于位置的不同内容-例如,据我所知,位置关键字将在内容中发生变化。
    include("http://website1.co.uk/products/$productnumber.thtml");