【问题标题】:Clone a website from one domain to another将网站从一个域克隆到另一个域
【发布时间】:2009-11-04 14:43:02
【问题描述】:

下面的最佳方法是什么......

网站 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 更新。这可以通过现有的 CMS(如 Joomla、Silverstripe、wordpress)来完成,还是必须是定制的 php 工作?

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

【问题讨论】:

  • 所有域都在同一台服务器上吗?
  • 您是否只是想让多个域指向同一个数据子集?或者您是否在为每个域设想不同的品牌?请澄清您的问题。

标签: php database content-management-system seo


【解决方案1】:

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

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

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

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

【讨论】:

  • 恕我直言,“另一种解决方案”是最好的。它遵循 DRY,是最易于维护的选项。
【解决方案2】:

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

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

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

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

【讨论】:

    【解决方案3】:

    除非我误解了您要执行的操作,否则您需要将所有域放在同一台服务器上,并且所有域都指向同一个文件夹。

    【讨论】:

    • 这对他不起作用,因为他需要根据地点拥有不同的内容 - 例如。据我了解,locality 关键字会在内容中发生变化。
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

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

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

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

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          我要做的是,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 拉了它。这使您可以在吐出 html 并进行所需的任何搜索/替换之前对其进行“预处理”。

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-09-27
            • 1970-01-01
            • 1970-01-01
            • 2019-05-13
            • 1970-01-01
            相关资源
            最近更新 更多