0

早上好,

我正在开发一个站点,该站点将通过 php 从 mysql 动态比较每个页面上的两个内容。例如,让我们说它比较旅游目的地。这些页面之一的示例 url 将是"http://sometravelwebsite.com/destinations/compare/New-York-City-vs-Tokyo"

php的编写方式,城市的顺序无关紧要。如果你输入

../New-York-City-vs-Tokyo

您将获得与您输入时相同的信息

../Tokyo-vs-New-York-City 

唯一的区别是左边是哪个城市的信息,右边是哪个城市的信息。

出于 SEO 的目的,如果只有一个版本的页面会更好,而另一个 url 重定向到主 url(例如../New-York-City-vs-Tokyo,是由谷歌索引的主 url,但如果输入另一个 url:,../Tokyo-vs-New-York-City它会 301重定向到主网址)。

我的问题是:这可以动态完成吗?

我唯一能想到的就是在mysql数据库中使用自增索引,总是把索引号较低的城市放在左边,把索引号较高的城市放在右边。

也就是说,如果我可以控制页面的哪一侧是哪个城市,我会更喜欢。虽然我不打算通过并决定哪个城市在每次比较中都站在哪一边(添加的城市越多越疯狂),我想控制其中的一些,以便让城市与页面左侧更理想的特征将首先看到(假设个人从左到右阅读)。

谁能想到更好的方法来通过 php、mysql、.htaccess 或任何其他方式动态地执行此操作?

任何帮助将不胜感激!

4

2 回答 2

0

创建和排列像

$allowed_left = array('New York City','Milan', 'London');

然后测试左侧是否不允许city1,如果为真,则通过交换城市来重定向到“反向url”

if ($city1 != in_array($allowed_left) ){
   if ($city2 != in_array($allowed_left)){
      header("Location: http://sometravelwebsite.com/destinations/compare/not_allowed.php"); 
   }
   else {
      header("HTTP/1.1 301 Moved Permanently"); 
      header("Location: http://sometravelwebsite.com/destinations/compare/".$city2."-vs-".$city1);
   }
}

这显然假设其中一个城市将被允许在左侧,否则如果它们都不在允许列表中,您可能会陷入无限循环。

于 2014-03-25T16:29:23.573 回答
0

动态 PHP 处理两者,但如果它们来自搜索引擎,您需要重定向吗?坚持简单的命名约定或始终按字母顺序排列它们,这样您就不会有单独的变体。我确信谷歌不会介意它的“A Vs B”或“B Vs A”如果对搜索有用,它会同样返回。

您可以将性能更好的对象放在左侧。使 URL 始终按字母顺序排列,将 2 个城市(或更多)放入数组并按字母顺序排序。至于在页面上显示,请查询您的数据库并根据您认为会转换得更高的计算“分数”从左到右显示它们(在您的 MySQL 语句上排序)。

于 2014-04-16T08:16:44.950 回答