如何使具有唯一ID的URL美观,并提高搜索结果的可见性


How to make URL with unique ID pretty and improve visibility in search results

我的团队正在开发一个新网站,为一家公司提供"在线旅游注册"服务。在设计旅游页面时,我们讨论了如何为每个旅游创建一个URL,这样每个人都可以理解它,另一方面它对搜索引擎来说是有意义的。

因此,我们开始分析实现Beautiful URL的不同方法。考虑到每个旅游都可以通过一个唯一的ID来识别,所以,一个旅游URL的例子可能是这样的:

http://www.example.com/tour/0x5P8btUJSo58LFh9Ukm114613052846

其中0x5P8btUJSo58LFh9Ukm114613052846是该旅游的唯一ID。问题是,如何添加出发地和目的地名称是URL,这样每个人都可以通过查看URL来了解旅行的位置。你有什么建议?如果我们在URL中添加出发地和目的地,那么如何声明具有相同目的地和出发地的不同旅行?添加来源和目的地将如何影响SEO并出现在搜索结果中?

为什么不把日期也放在URL中?

如果始发地+目的地+日期在您的情况下是唯一的,您可以省略ID;如果没有,也加上出发时间。

各种设计都是可能的,例如:

example.com/tour/paris-to-madrid/2013-11-25
example.com/tour/paris/madrid/2013-11-25
example.com/tour/2013-11-25/paris-to-madrid/
example.com/tour/2013-11-25/paris/madrid/

我选择了一个允许通过URL路径操作进行浏览的。例如,如果您有一个特定日期的所有巡演列表,请先使用日期(example.com/tour/2013-11-25/显示2013-11-25的所有巡演);如果您想显示特定旅行的所有可用旅行日期,请先使用该旅行(example.com/tour/paris-to-madrid/显示从巴黎到马德里的所有旅行);等

我认为很明显,这样一个可读的URL比使用一个神秘的ID更友好。你更可能点击哪个链接,哪个链接在访问页面之前提供了一些信息?

  • example.com/tour/paris-to-madrid/2013-11-25
  • example.com/tour/0x5P8btUJSo58LFh9Ukm114613052846

如果除了可读部分之外还包括ID,那么URL会变得很长,并且ID仍然会分散对重要部分的注意力:

  • example.com/tour/0x5P8btUJSo58LFh9Ukm114613052846/paris-to-madrid/2013-11-25

我会使用Apache Mod_Rewrite将/tour/目录的所有URL重写为单个脚本,并使用查询字符串将请求的路径传递给脚本。

/tours/.htaccess:

RewriteEngine On
RewriteRule ^/?tours/?(.*)$ index.php?q=$1 [NC,L]

然后,在index.php中,让它以您希望的任何格式处理$_GET['q']的数据。这样,你仍然可以保留当前页面的任何链接,但也可以接受新的格式。

为了区分不同的旅行,我会运行这样的格式:

http://www.example.com/tours/Origin/Destination/TourID

也许可以让TourID成为一个小得多的字符串,甚至可以由预订旅行的团队定制。

如果使用Apache ,则需要.htaccess

也许像

Options +FollowSymLinks
Options +Indexes
RewriteEngine on
RewriteBase /
RewriteRule ^/?tour/([a-zA-Z_]+)/([a-zA-Z_]+)$ tour.php?origin=$1&destination=$2 [NC,L]